一、 Dubbo框架
1. Dubbo框架介绍
Apache Dubbo |db| 提供了六大外围能力:面向接口代理的高性能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: 9001dubbo: 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