Dubbo的負載均衡


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不保持一致,那么不會形成負載均衡。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM