共计 1935 个字符,预计需要花费 5 分钟才能阅读完成。
一、Dubbo 框架
1. Dubbo 框架介绍
Apache Dubbo |ˈdʌbəʊ| 提供了六大外围能力:面向接口代理的高性能 RPC 调用,智能容错和负载平衡,服务主动注册和发现,高度可扩大能力,运行期流量调度,可视化的服务治理与运维。
2. Dubbo 框架劣势
问题阐明:
问题 1: 当服务生产者有一个宕机, 问程序是否失常运行???
阐明: 因为 dubbo 框架的机制, 仍然能够保障失常运行…
问题 2: 如果整合 zk 集群宕机, 问程序是否运行失常??
阐明: 如果只是主机宕机, 则 zk 有高可用的成果, 程序不受影响.
阐明 2: 如果整合 zk 集群宕机, 则用户仍然能够失常拜访, 然而当初的程序处于危险状态.
阐明 3: 如果在上述的状况下, 再次宕机一台生产者 程序仍然能够失常运行. 因为保护了本地的服务列表信息.
3. Dubbo 负载平衡机制
3.1 负载平衡品种
阐明: dubbo 框架中负载平衡机制是客户端负载平衡. 该配置须要在客户端 (消费者) 中配置即可.
3.1.1 负载平衡 - 随机策略
1). 类名称
2). 配置负载平衡机制
3.1.2 负载平衡 - 轮询机制
1). 设置轮询策略
1). 轮询类名
3.1.3 负载平衡 - 一致性 hash
1).Controller 配置
2). 具体类名
3.1.4 负载平衡 -“起码拜访”
1). 编辑 Controller
2). 具体类名
3.2 数据在 zk 中存储构造阐明
4. Dubbo 入门案例
4.1 导入 jar 包
<!-- 引入 dubbo 配置 如果下载失败 则去本地仓库中删除从新下载 -->
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>
2.2 导入我的项目
1). 批改版本号
2). 批改子项目名称
3). 复制我的项目
4). 增加为 maven 我的项目
5. 对于入门案例阐明
5.1 定义中立接口
1). 我的项目构造
2). 定义接口
5.2 编辑服务生产者
5.2.1 编辑接口实现
阐明: 留神注解导入的是 dubbo 的注解
5.2.2 编辑 YML 配置文件
server:
port: 9000 #定义 tomcat 端口 服务启动时占用的端口
spring:
datasource:
#引入 druid 数据源
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/jtdb?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
username: root
password: root
#对于 Dubbo 配置
dubbo:
scan:
basePackages: com.jt #指定 dubbo 的包门路
application: #利用名称
name: provider-user #一个接口对应一个服务名称 如果是多个实现类则利用名称统一
registry:
address: zookeeper://192.168.126.129:2181?backup=192.168.126.129:2182,192.168.126.129:2183
protocol: #指定协定
name: dubbo #应用 dubbo 协定(tcp-ip) web-controller 间接调用 sso-Service
port: 20880 #每一个服务都有本人特定的端口 不能反复.
mybatis-plus:
type-aliases-package: com.jt.dubbo.pojo #配置别名包门路
mapper-locations: classpath:/mybatis/mappers/*.xml #增加 mapper 映射文件
configuration:
map-underscore-to-camel-case: true #开启驼峰映射规定
5.2.3 生产者启动测试
5.3 编辑服务消费者
5.3.1 编辑 UserController
5.3.2 编辑消费者的 YML 配置文件
server:
port: 9001
dubbo:
scan:
basePackages: com.jt
application:
name: consumer-user #定义消费者名称
registry: #注册核心地址
address: zookeeper://192.168.126.129:2181?backup=192.168.126.129:2182,192.168.126.129:2183
正文完
发表至: springboot
2020-12-15