寫在前面:2020年面試必備的Java後端進階面試題總結了一份複習指南在Github上,內容詳細,圖文並茂,有需要學習的朋友可以Star一下!
GitHub地址:https://github.com/abel-max/Java-Study-Note/tree/master
一、ZooKeeper註冊中心
Zookeeper 是 Apache Hadoop 的子項目,是一個樹型的目錄服務,支持變更推送,適合作爲 Dubbo 服務的註冊中心,工業強度較高,可用於生產環境,推薦使用。
流程說明:
- 服務提供者啓動時: 向 /dubbo/com.foo.BarService/providers 目錄下寫入自己的 URL 地址。
- 服務消費者啓動時: 訂閱 /dubbo/com.foo.BarService/providers 目錄下的提供者 URL 地址。並向 /dubbo/com.foo.BarService/consumers 目錄下寫入自己的 URL 地址。
- 監控中心啓動時: 訂閱 /dubbo/com.foo.BarService 目錄下的所有提供者和消費者 URL 地址。
支持以下功能:
- 當提供者出現斷電等異常停機時,註冊中心能自動刪除提供者信息;
- 當註冊中心重啓時,能自動恢復註冊數據,以及訂閱請求;
- 當會話過期時,能自動恢復註冊數據,以及訂閱請求;
- 當設置 <dubbo:registry check="false" /> 時,記錄失敗註冊和訂閱請求,後臺定時重試;
- 可通過 <dubbo:registry username="admin" password="1234" /> 設置 zookeeper 登錄信息;
- 可通過 <dubbo:registry group="dubbo" /> 設置 zookeeper 的根節點,不配置將使用默認的根節點;
- 支持 * 號通配符 <dubbo:reference group="" version="" /> ,可訂閱服務的所有分組和所有版本的提供者。
作爲 Dubbo 的老牌黃金搭檔 ZooKeeper,我們在單獨講解 Dubbo 時已經給大家分享過如何使用了,本文系 Spring Cloud Alibaba 系列文章,重點對象是 Nacos,所以 ZooKeeper 這裏就不過多贅述了。
二、Nacos 註冊中心
Nacos 是 Alibaba 公司推出的開源工具,用於實現分佈式系統的服務發現與配置管理。Nacos 是 Dubbo 生態系統中重要的註冊中心實現。
預備工作
當您將 Nacos 整合到您的 Dubbo 工程之前,請確保後臺已經啓動 Nacos 服務。
快速上手
Dubbo 融合 Nacos 成爲註冊中心的操作步驟非常簡單,大致步驟可分爲“增加 Maven 依賴”和“配置註冊中心“。
依賴
核心依賴主要是 dubbo-registry-nacos 和 nacos-client 。
<!-- https://mvnrepository.com/artifact/org.apache.dubbo/dubbo-registry-nacos -->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-registry-nacos</artifactId>
<version>2.7.7</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client -->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>1.3.0</version>
</dependency>
配置註冊中心
服務提供者和服務消費者只需要調整 address 屬性配置即可。
單機配置:
<!-- 使用 Nacos 註冊中心,單機版 -->
<dubbo:registry address="nacos://127.0.0.1:8848"/>
<!-- 或 -->
<dubbo:registry protocol="nacos" address="127.0.0.1:2181"/>
集羣配置:
<!-- 使用 Nacos 註冊中心,集羣版 -->
<dubbo:registry address="nacos://192.168.10.101:2181?backup=192.168.10.102:2181,192.168.10.103:2181"/>
<!-- 或 -->
<dubbo:registry protocol="nacos" address="192.168.10.101:2181,192.168.10.102:2181,192.168.10.103:2181"/>
隨後,重啓您的 Dubbo 應用,Dubbo 的服務提供和消費信息在 Nacos 控制檯中即可顯示。