概覽
註冊中心是 Dubbo 服務治理的核心組件。Dubbo 依靠註冊中心的協調來實現服務(地址)發現。自動服務發現是微服務實現動態擴容、負載均衡和流量管理的基礎。Dubbo 的服務發現機制經歷了 Dubbo2 時代的介面級服務發現和 Dubbo3 時代的應用級服務發現。詳情可參考[服務發現機制](/en/docs3-v2/java-sdk/concepts-and-architecture/service-discovery/) 解析來了解具體的演進過程。
基本用法
開發應用程式時必須指定 Dubbo 註冊中心組件。配置非常簡單,只需指定註冊中心的叢集地址即可
以 Spring Boot 開發為例,在 application.yml 中新增一個註冊中心配置項
dubbo
registry
address: {protocol}://{cluster-address}
其中,protocol 是選定的配置中心類型,cluster-address 是訪問註冊中心的叢集地址,例如
address: nacos://localshot:8848
如果需要叢集格式地址,可以使用 backup 參數
address: nacos://localshot:8848?backup=localshot:8846,localshot:8847
應用程式必須指定 Dubbo 註冊中心,即使未啟用註冊中心(可以將地址設定為空地址 address=‘N/A’)。
除了 rest 之外,根據每個配置中心,可以參考註冊中心配置參考手冊或通過 parameters 參數進行擴展。
配置中心和元資料中心
配置中心和元資料中心是實現 Dubbo 高階服務治理能力的基礎組件。與註冊中心相比,這兩個組件的配置通常是可選的。
為了與 2.6 及更早版本的配置相容,Dubbo 會將某些註冊中心類型(例如 Zookeeper、Nacos 等)同時用作元數據中心和配置中心。
dubbo
registry
address: nacos://#:8848
幀解析後的預設行為
dubbo
registry
address: nacos://#:8848
config-center
address: nacos://#:8848
metadata-report
address: nacos://#:8848
預設行為可以通過以下兩個參數進行調整或控制
dubbo
registry
address: nacos://#:8848
use-as-config-center: false
use-as-metadata-report: false
註冊中心生態
目前 Dubbo 主幹支援的主流註冊中心實現包括
- Zookeeper
- Nacos
- Redis
它也支援 Kubernetes 和 Mesh 系統的服務發現。
此外,Dubbo 擴展生態也提供了 Consul、Eureka 和 Etcd 等註冊中心擴展實現。也歡迎通過註冊中心 SPI 擴展為 Dubbo 生態貢獻更多註冊中心實現。
Dubbo 也支援在一個應用程式中[指定多個註冊中心](../multiple-registry/),並根據註冊中心對服務進行分組,這使得服務群組管理或服務遷移更加容易。