ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Dubbo的负载均衡

2019-09-09 20:01:16  阅读:186  来源: 互联网

标签:Dubbo 负载 name dubbo spring zookeeper datasource 均衡 provider


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不保持一致,那么不会形成负载均衡。

 

标签:Dubbo,负载,name,dubbo,spring,zookeeper,datasource,均衡,provider
来源: https://www.cnblogs.com/liuqijia/p/11493879.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有