注冊中心遷移
更新時間 2024-09-11 18:08:57
最近更新時間: 2024-09-11 18:08:57
分享文章
本章節介紹注冊中心遷移方案
MSE Nacos Sync遷移方案
本文介紹基于Nacos ?Sync 注冊中心的遷移方案。
遷移方案簡介
Nacos sync 是一個支持多種注冊中心的同步組件,目前支持Nacos 和Zookeeper 注冊中心 的雙向同步,另外還支持Eureka ?和Consul數據同步到Nacos。
遷移工具介紹
在遷移過程中,Nacos ?sync能夠將源集群上的服務信息同步到目標集群實例上,從而實現配置中心之間的平滑遷移。

Nacos ?Sync ?本身是無狀態的,將任務等狀態數據保存在數據庫中,所以水平擴展非常方便。Nacos ?Sync 通過定時任務補償機制處理宕機節點未處理完畢的任務數據。注冊配置中心實例已經內置同步工具,無需用戶額外安裝,遷移方法可以參考章節:遷移上云。
Nacos Sync適配Zookeeper、Nacos和Eureka 的服務注冊邏輯,能夠實現從Zookeeper、Nacos和Eureka 自動獲取服務,一鍵同步,操作非常簡單。
支持的注冊中心類型
| 源注冊中心 | 目標注冊中心 | 說明 |
|---|---|---|
| Nacos | Nacos | Nacos原生服務類型。 |
| Zookeeper | Nacos | 基于Curator實現的服務發現功能和Dubbo服務。 |
| Zookeeper | Zookeeper | 服務和配置。 |
| Eureka | Nacos | Eureka原生服務類型。Eureka原生服務名為大寫,但Nacos Sync會將服務名名轉換成小寫。 |
從Dubbo Nacos遷移到MSE
本文介紹如何從Dubbo+Nacos 遷移服務到MSE。
前提條件
- 已經創建Nacos 實例。
使用限制
- 源注冊中心、目標注冊中心二者之間必須保障網絡互通。
遷移步驟
遷移步驟請參考章節:遷移上云。
驗證同步結果
- 登錄微服務引擎MSE注冊配置中心管理控制臺,選擇資源池。
- 在左側導航欄,選擇注冊配置中心 > 實例列表。
- 在實例列表頁面,單擊目標實例ID、實例名稱或者目標行管理按鈕均可跳轉至實例基礎信息頁面。
- 在基礎信息頁面,點擊服務管理> 服務列表,選擇命名空間,查看當前Nacos注冊的服務列表。確認選擇的服務是否同步成功。
遷移Dubbo客戶端
- 修改Dubbo客戶端的XML配置文件,將dubbo:registry address中的源Nacos的訪問地址,替換為目標Nacos的訪問地址,替換Nacos用戶名和密碼。
- 重啟客戶端,此時Dubbo客戶端連接的就是目標Nacos實例。
- 此時源Nacos集群就可以關閉了。
到此,即實現了從源注冊中心到目標注冊中心的平滑遷移。
從Dubbo ZooKeeper遷移到 MSE ZooKeeper
本文遷移指導適用于使用ZooKeeper作為Dubbo的注冊中心需要遷移到MSE ZooKeeper的場景。遷移功能是利用ZooKeeper的快照(Snapshot)進行數據的遷移。
前提條件:
已創建MSE ZooKeeper集群。具體操作,請參考創建ZooKeeper引擎。
使用限制:
- 遷移前確保源ZooKeeper停止同步服務,并且有生成最新的快照文件。
- 該方式不支持同步分布式鎖、臨時節點數據。
遷移步驟:
步驟一:導出源ZooKeeper快照。
- 在源ZooKeeper部署機器上,查看zoo.cfg配置文件,獲取dataDir配置目錄。

- 進入dataDir目錄后,進入version-2/目錄找到最新的快照文件進行下載保存。

- 在MSE ZooKeeper實例詳情頁面中,進入數據管理->Znode管理->點擊數據導入。
- 點擊上傳文件,選中剛剛下載保存的快照文件,點擊確定,等待集群重啟完畢即可,預計需要等待2-5分鐘。
- 驗證數據遷移結果,可以在數據管理-Znode管理中查看相應的節點驗證數據。
- 遷移Dubbo客戶端,找到Dubbo客戶端的配置文件,將Dubbo客戶端的Endpoint替換為MSE ZooKeeper的Endpoint。修改示例如下:
dubbo.registry.address=zookeeper://xxx.xx.xx.x:port