springboot+dubbo+zookeeper时,
如果有两个服务提供者,想要实现负载均衡时:
provider1的application.properties配置:
1 server.port=8081 2 server.context-path=/ 3 4 spring.datasource.driver-class-name=com.MysqL.jdbc.Driver 5 spring.datasource.url=jdbc:MysqL://localhost:3306/teach?useSSL=false 6 spring.datasource.username=root 7 spring.datasource.password=root 8 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource 9 10 mybatis.type-aliases-package=com.aaa.lee.dubbo.model 11 mybatis.mapper-locations=classpath:mapper/*Mapper.xml 12 13 # dubbo的配置 14 # 配置dubbo的应用名(在dubbo的admin项目,可以非常直观的看出来该项目是一个什么项目) 15 # dubbo-admin--->生产者/消费者-->application name-->需要根据当前项目所提供的功能进行命名 16 dubbo.application.name=user-provider 17 # protocol:协议 18 # 配置该项目远程调用的时候所使用的协议-->dubbo(tcp,udp....) 19 # 在之前所有的项目使用的协议都是http 20 dubbo.protocol.name=dubbo 21 # 配置dubbo所必须使用的通讯端口号(21881,21880,20881,20880....) 22 # 在dubbo的官网中所提供的项目demo,就使用的是以上端口号 23 dubbo.protocol.port=20881 24 # zookeeper的通讯地址 25 # dubbo配置zookeeper是因为dubbo框架集成zookeeper 26 # provider最终需要向zookeeper注册服务,也就是说必须要让provider项目知道zookeeper是哪一个! 27 dubbo.registry.address=zookeeper://192.168.23.160:2181 28 # provider项目必须要让zookeeper知道具体是哪一个类/哪一些类需要注册进zookeeper中 29 # 也就是说必须要让zookeeper知道所注册进注册中心的实现类是谁 30 # dubbo中也提供了包的扫描 31 # dubbo.扫描.基础包(该包以及所有的子包中的所有类都会注册进zookeeper) 32 dubbo.scan.base-packages=com.aaa.lee.dubbo.service.impl
provider2的application.properties配置:
1 server.port=8083 2 server.context-path=/ 3 4 spring.datasource.driver-class-name=com.MysqL.jdbc.Driver 5 spring.datasource.url=jdbc:MysqL://localhost:3306/teach?useSSL=false 6 spring.datasource.username=root 7 spring.datasource.password=root 8 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource 9 10 mybatis.type-aliases-package=com.aaa.lee.dubbo.model 11 mybatis.mapper-locations=classpath:mapper/*Mapper.xml 12 13 # dubbo的配置 14 # 配置dubbo的应用名(在dubbo的admin项目,可以非常直观的看出来该项目是一个什么项目) 15 # dubbo-admin--->生产者/消费者-->application name-->需要根据当前项目所提供的功能进行命名 16 dubbo.application.name=user-provider 17 # protocol:协议 18 # 配置该项目远程调用的时候所使用的协议-->dubbo(tcp,udp....) 19 # 在之前所有的项目使用的协议都是http 20 dubbo.protocol.name=dubbo 21 # 配置dubbo所必须使用的通讯端口号(21881,21880,20881,20880....) 22 # 在dubbo的官网中所提供的项目demo,就使用的是以上端口号 23 dubbo.protocol.port=20882 24 # zookeeper的通讯地址 25 # dubbo配置zookeeper是因为dubbo框架集成zookeeper 26 # provider最终需要向zookeeper注册服务,也就是说必须要让provider项目知道zookeeper是哪一个! 27 dubbo.registry.address=zookeeper://192.168.23.160:2181 28 # provider项目必须要让zookeeper知道具体是哪一个类/哪一些类需要注册进zookeeper中 29 # 也就是说必须要让zookeeper知道所注册进注册中心的实现类是谁 30 # dubbo中也提供了包的扫描 31 # dubbo.扫描.基础包(该包以及所有的子包中的所有类都会注册进zookeeper) 32 dubbo.scan.base-packages=com.aaa.lee.dubbo.service.impl
1、当使用dubbo的负载均衡时,两个provider的dubbo的端口号绝对不能一样;
2、把所有属于同一类型的dubbo-provider项目标识给zookeeper,使用的是dubbo.application.name来进行标识,
也就是说所有同一类型的provider的application.name必须要保持一致,如果provider的name不保持一致,那么不会形成负载均衡。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。