【Dubbo3 終極特性】「雲原生三中心架構」帶你探索 Dubbo3 體系下的配置中心和後設資料中心、註冊中心的原理及開發實戰(中)

洛神灬殤發表於2023-01-17

承接上文

透過之前的【Dubbo3終極特性】「雲原生三中心架構」帶你探索 Dubbo3 體系下的配置中心和後設資料中心、註冊中心的原理及開發實戰(上),讓我們對Dubbo3的三中心架構體系有了一定的認識和了解。

Dubbo3的三中心部署架構

回顧一下部署架構(註冊中心、配置中心、後設資料中心),瞭解Dubbo3的三大中心化元件,它們各自的職責、工作方式。

微服務框架,Dubbo SDK跟隨著微服務元件被部署在分散式叢集各個位置,為了在分散式環境下實現各個微服務元件間的協作。

Dubbo定義了一些中心化元件

  • 註冊中心:協調 Consumer 與 Provider 之間的地址註冊與發現
  • 配置中心:
    • 儲存Dubbo3啟動階段的全域性配置,保證配置的跨環境共享與全域性一致性。
    • 負責服務治理規則(路由規則、動態配置等)的儲存與推送。
  • 後設資料中心:
    • 接收Provider上報的服務介面後設資料,為Admin等控制檯提供運維能力(如:服務測試、介面文件等)。
    • 服務發現機制的補充,提供額外的介面/方法級別配置資訊的同步能力,相當於註冊中心的額外擴充套件。

上圖完整的描述了Dubbo3微服務元件與各個中心的互動過程。

使用Nacos服務建立三中心體系

開展我們啟動Nacos服務的搭建過程,此部分我們可以參考之前的文章:【深入淺出 Dubbo3 原理及實戰】「SpringCloud-Alibaba 系列」基於 Nacos 作為註冊中心進行釋出 SpringCloud-alibaba 生態的 RPC 介面實戰,進行部署對應的Nacos即可。

Nacos對接Dubbo的註冊中心、配置中心和後設資料中心

接下來我們需要針對於Nacos如何配置和對接我們的三中心體系進行相關的介紹和分析。Dubbo的註冊中心、配置中心和後設資料中心

Nacos如何對接Dubbo3的配置中心和後設資料中心

針對於Nacos對接註冊中心的方案之前我們已經對接過了,在這裡我們就不過多的贅述,我們目前主要針對於配置中心以及後設資料中心進行分析如何開發。

後設資料中心

首先我們需要針對於SpringBoot的專案的配置進行配置新增dubbo3的配置,進行配置maven依賴。

zookeeper的後設資料中心的配置(3.0.7的dubbo版本)
<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo-metadata-report-zookeeper</artifactId>
    <version>3.0.7</version>
</dependency>
redis的後設資料中心的配置(3.0.7的dubbo版本)
<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo-metadata-report-redis</artifactId>
</dependency>
nacos的後設資料中心的配置(3.0.7的dubbo版本)
<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo-metadata-report-nacos</artifactId>
</dependency>

在這裡我們選擇的是nacos的配置,之後進行配置選擇,針對於application.properties檔案的配置如下:

後設資料中心的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

對應的常用配置:

  • dubbo.metadata-report.address:後設資料中心的地址,此時可以配置nacos的地址,nacos的地址為 nacos://ip:8848,代表dubbo會把nacos作為後設資料中心,進行上報對應的介面資訊和應用名稱關係等。

  • dubbo.metadata-report.retry-times: 後設資料中心的地址,如果上報資料之後,出現了失敗場景,會進行重試的次數,我們可以配置5次。,預設100

  • dubbo.metadata-report.retry-period: 重試執行的間隔時間,單位為毫秒,重試周期,預設3000ms。

  • dubbo.metadata-report.cycle-report: 定時重新整理,預設開啟(true),可以透過設定cycleReport=false進行關閉。

即可完成後設資料中心的對應的Dubbo3的對接配置。

配置中心

相比配置中心不支援redis,所以我們主要採用nacos去實現配置中心的掛載對接。

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

即可完成對應的配置中心的配置機制

最後配置中心和後設資料中心對接Nacos內部的配置分析,大家可以嘗試配置一下看看對應的效果即可。下一篇文章會給大家展示效果。

相關文章