一、 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
发表回复