開篇
為了統(tǒng)一不同配置中心(如Zookeeper、Nacos、Etcd等)對(duì)于服務(wù)治理規(guī)則的實(shí)現(xiàn),Dubbo2.7.3及之后的版本針對(duì)2.7.0以來的配置中心的部分實(shí)現(xiàn)進(jìn)行了重構(gòu)。
從實(shí)際代碼來看,Dubbo Admin針對(duì)應(yīng)用維度的配置的實(shí)際生效需要在Dubbo 2.7.3及以后的版本,為了方便debug建議Dubbo的版本是dubbo-2.7.4.1。
Dubbo Admin新版本的github地址為dubbo-admin。
演示效果



配置中心
配置目錄結(jié)構(gòu)
[zk] ls /dubbo/config/dubbo
[dubbo-demo-api-provider.configurators, dubbo-demo-api-consumer.configurators, org.apache.dubbo.demo.DemoService.configurators]
Dubbo 2.7.X的配置中心目錄在/dubbo/config/dubbo,不在像Dubbo 2.6.X一樣在/dubbo/service/configurators下。
Dubbo 2.7.X的配置中心的命令規(guī)則為/dubbo/config/dubbo/applicationName. configName 或 /dubbo/config/dubbo/serviceName.configName
consumer側(cè)的配置
[zk] get /dubbo/config/dubbo/dubbo-demo-api-consumer.configurators
configs:
- addresses:
- ''
enabled: true
parameters:
weight: 111
side: provider
type: weight
enabled: false
key: dubbo-demo-api-consumer
scope: application
[zk] get /dubbo/config/dubbo/dubbo-demo-api-consumer.tag-router
enabled: true
force: false
key: dubbo-demo-api-consumer
priority: 0
runtime: false
tags:
- addresses:
- 192.168.0.1:20881
name: tag1
- addresses:
- 192.168.0.2:20882
name: tag2
provider側(cè)的配置
[zk] get /dubbo/config/dubbo/dubbo-demo-api-provider.configurators
configs:
- addresses:
- ''
enabled: true
parameters:
weight: 10
side: provider
type: weight
- enabled: true
parameters:
loadbalance: leastactive
side: consumer
type: balancing
enabled: false
key: dubbo-demo-api-provider
scope: application
[zk] get /dubbo/config/dubbo/dubbo-demo-api-provider.condition-router
conditions:
- => host != 172.22.3.91
enabled: true
force: true
key: dubbo-demo-api-provider
priority: 0
runtime: false
scope: application
[zk] get /dubbo/config/dubbo/dubbo-demo-api-provider.tag-router
enabled: true
force: false
key: dubbo-demo-api-provider
priority: 0
runtime: false
tags:
- addresses:
- 192.168.0.1:20881
name: tag1
- addresses:
- 192.168.0.2:20882
name: tag2
service緯度的配置
[zk] get /dubbo/config/dubbo/org.apache.dubbo.demo.DemoService.configurators
configs:
- addresses:
- ''
enabled: true
parameters:
weight: 10
side: provider
type: weight
- enabled: true
parameters:
.loadbalance: leastactive
side: consumer
type: balancing
enabled: false
key: org.apache.dubbo.demo.DemoService
scope: service
Dubbo Admin 調(diào)試步驟
1、官方git倉(cāng)庫(kù) dubbo-admin下載dubbo-admin的源碼。
2、參考官網(wǎng)運(yùn)行步驟進(jìn)行操作,啟動(dòng)dubbo admin server和dubbo admin ui。
3、運(yùn)行dubbo admin server,dubbo admin server是一個(gè)標(biāo)準(zhǔn)的spring boot項(xiàng)目, 可以在任何java IDE中運(yùn)行它。
4、運(yùn)行dubbo admin ui,dubbo admin ui由npm管理和構(gòu)建,在開發(fā)環(huán)境中,可以單獨(dú)運(yùn)行: npm run dev。
5、官方git倉(cāng)庫(kù)dubbo下載dubbo源碼并切換分支到dubbo-2.7.4.1的分支。
6、啟動(dòng)org.apache.dubbo.demo.provider.Application作為provider運(yùn)行。
7、啟動(dòng)org.apache.dubbo.demo.consumer.Application作為consumer運(yùn)行。
8、整個(gè)調(diào)試過程中請(qǐng)自行啟動(dòng)zookeeper作為注冊(cè)中心,并修改provider和consumer的注冊(cè)中心地址。
9、其他的實(shí)際請(qǐng)自行打斷點(diǎn)進(jìn)行debug操作。