承接上文
通過之前的【Dubbo3終極特性】「云原生三中心架構(gòu)」帶你探索 Dubbo3 體系下的配置中心和元數(shù)據(jù)中心怪蔑、注冊(cè)中心的原理及開發(fā)實(shí)戰(zhàn)(上),讓我們對(duì)Dubbo3的三中心架構(gòu)體系有了一定的認(rèn)識(shí)和了解活翩。
Dubbo3的三中心部署架構(gòu)
回顧一下部署架構(gòu)(注冊(cè)中心烹骨、配置中心翻伺、元數(shù)據(jù)中心),了解Dubbo3的三大中心化組件展氓,它們各自的職責(zé)穆趴、工作方式。
微服務(wù)框架遇汞,Dubbo SDK跟隨著微服務(wù)組件被部署在分布式集群各個(gè)位置牺蹄,為了在分布式環(huán)境下實(shí)現(xiàn)各個(gè)微服務(wù)組件間的協(xié)作蝴悉。
Dubbo定義了一些中心化組件
- 注冊(cè)中心:協(xié)調(diào) Consumer 與 Provider 之間的地址注冊(cè)與發(fā)現(xiàn)
- 配置中心:
- 存儲(chǔ)Dubbo3啟動(dòng)階段的全局配置,保證配置的跨環(huán)境共享與全局一致性。
- 負(fù)責(zé)服務(wù)治理規(guī)則(路由規(guī)則彬祖、動(dòng)態(tài)配置等)的存儲(chǔ)與推送。
- 元數(shù)據(jù)中心:
- 接收Provider上報(bào)的服務(wù)接口元數(shù)據(jù)慧瘤,為Admin等控制臺(tái)提供運(yùn)維能力(如:服務(wù)測(cè)試宜雀、接口文檔等)。
- 服務(wù)發(fā)現(xiàn)機(jī)制的補(bǔ)充埋凯,提供額外的接口/方法級(jí)別配置信息的同步能力点楼,相當(dāng)于注冊(cè)中心的額外擴(kuò)展。
上圖完整的描述了Dubbo3微服務(wù)組件與各個(gè)中心的交互過程白对。
使用Nacos服務(wù)建立三中心體系
開展我們啟動(dòng)Nacos服務(wù)的搭建過程掠廓,此部分我們可以參考之前的文章:【深入淺出 Dubbo3 原理及實(shí)戰(zhàn)】「SpringCloud-Alibaba 系列」基于 Nacos 作為注冊(cè)中心進(jìn)行發(fā)布 SpringCloud-alibaba 生態(tài)的 RPC 接口實(shí)戰(zhàn),進(jìn)行部署對(duì)應(yīng)的Nacos即可甩恼。
Nacos對(duì)接Dubbo的注冊(cè)中心蟀瞧、配置中心和元數(shù)據(jù)中心
接下來我們需要針對(duì)于Nacos如何配置和對(duì)接我們的三中心體系進(jìn)行相關(guān)的介紹和分析。Dubbo的注冊(cè)中心条摸、配置中心和元數(shù)據(jù)中心
Nacos如何對(duì)接Dubbo3的配置中心和元數(shù)據(jù)中心
針對(duì)于Nacos對(duì)接注冊(cè)中心的方案之前我們已經(jīng)對(duì)接過了悦污,在這里我們就不過多的贅述,我們目前主要針對(duì)于配置中心以及元數(shù)據(jù)中心進(jìn)行分析如何開發(fā)钉蒲。
元數(shù)據(jù)中心
首先我們需要針對(duì)于SpringBoot的項(xiàng)目的配置進(jìn)行配置添加dubbo3的配置切端,進(jìn)行配置maven依賴。
zookeeper的元數(shù)據(jù)中心的配置(3.0.7的dubbo版本)
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-metadata-report-zookeeper</artifactId>
<version>3.0.7</version>
</dependency>
redis的元數(shù)據(jù)中心的配置(3.0.7的dubbo版本)
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-metadata-report-redis</artifactId>
</dependency>
nacos的元數(shù)據(jù)中心的配置(3.0.7的dubbo版本)
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-metadata-report-nacos</artifactId>
</dependency>
在這里我們選擇的是nacos的配置顷啼,之后進(jìn)行配置選擇帆赢,針對(duì)于application.properties文件的配置如下:
元數(shù)據(jù)中心的applicaion.properties配置
dubbo.metadata-report.address=nacos://${nacos.address:127.0.0.1}:8848?username=nacos&password=nacos
dubbo.metadata-report.retry-times=5
dubbo.metadata-report.retry-period=5000
dubbo.metadata-report.cycle-report=false
對(duì)應(yīng)的常用配置:
dubbo.metadata-report.address:元數(shù)據(jù)中心的地址,此時(shí)可以配置nacos的地址线梗,nacos的地址為 nacos://ip:8848椰于,代表dubbo會(huì)把nacos作為元數(shù)據(jù)中心,進(jìn)行上報(bào)對(duì)應(yīng)的接口信息和應(yīng)用名稱關(guān)系等仪搔。
dubbo.metadata-report.retry-times: 元數(shù)據(jù)中心的地址瘾婿,如果上報(bào)數(shù)據(jù)之后,出現(xiàn)了失敗場(chǎng)景,會(huì)進(jìn)行重試的次數(shù)偏陪,我們可以配置5次抢呆。,默認(rèn)100
dubbo.metadata-report.retry-period: 重試執(zhí)行的間隔時(shí)間,單位為毫秒笛谦,重試周期抱虐,默認(rèn)3000ms。
dubbo.metadata-report.cycle-report: 定時(shí)刷新饥脑,默認(rèn)開啟(true)恳邀,可以通過設(shè)置cycleReport=false進(jìn)行關(guān)閉。
即可完成元數(shù)據(jù)中心的對(duì)應(yīng)的Dubbo3的對(duì)接配置灶轰。
配置中心
相比配置中心不支持redis谣沸,所以我們主要采用nacos去實(shí)現(xiàn)配置中心的掛載對(duì)接。
nacos的配置中心的配置(3.0.7的dubbo版本)
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-configcenter-nacos</artifactId>
<version>3.0.7</version>
</dependency>
zookeeper的配置中心的配置(3.0.7的dubbo版本)
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-configcenter-zookeeper</artifactId>
<version>3.0.7</version>
</dependency>
配置中心的applicaion.properties配置
zookeeper的配置
dubbo.config-center.address=zookeeper://${config-center.address:127.0.0.1}:2181
nacos的配置
dubbo.config-center.address=nacos://${nacos.address:127.0.0.1}:8848?username=nacos&password=nacos
即可完成對(duì)應(yīng)的配置中心的配置機(jī)制笋颤。
最后配置中心和元數(shù)據(jù)中心對(duì)接Nacos內(nèi)部的配置分析乳附,大家可以嘗試配置一下看看對(duì)應(yīng)的效果即可。下一篇文章會(huì)給大家展示效果伴澄。