注冊中心同步組件為用戶提供源注冊中心上的微服務到目標注冊中心的同步功能,并通過MSHA管控可視化地管理每個同步任務。目前支持Nacos-Nacos和ZooKeeper-ZooKeeper類型之間單向或雙向同步。
步驟一:準備工作
ECS準備。
您需要準備一臺處于VPC網絡下的ECS機器,且規格至少2 Core 4 GB。
由于MSHA管控面要與ECS上的8080端口交互,在同步前需要在ECS機器上安全組的規則配置中開放8080端口。
RDS準備。
準備一個和上述ECS處于同個VPC下的RDS,配置數據庫賬號、密碼,設置白名單,數據庫名不限。建表語句如下:
CREATE TABLE `cluster` ( `id` int(11) NOT NULL AUTO_INCREMENT, `cluster_id` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `cluster_name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `cluster_type` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `connect_key_list` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE = InnoDB AUTO_INCREMENT = 5 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_bin; CREATE TABLE `task` ( `id` int(11) NOT NULL AUTO_INCREMENT, `dest_cluster_id` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `group_name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `name_space` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `operation_id` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `service_name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `source_cluster_id` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `task_id` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `task_status` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `version` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `worker_ip` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE = InnoDB AUTO_INCREMENT = 6 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_bin;
說明您可選擇使用自建MySQL代替RDS,但必須保證自建MySQL和ECS處于同一VPC下,且數據庫端口為3306。
添加ECS機器到MSHA控制臺。
登錄多活容災MSHA控制臺。
在左側導航欄,選擇 。
您可選擇以下兩種方式添加ECS服務器:
在ECS頁面中,單擊錄入服務器,然后在新增服務器頁面,輸入ECS相關信息,操作完成后單擊確定。
在ECS頁面,單擊同步ECS,然后在同步ECS窗口中,選擇要添加的ECS服務器,單擊確認,完成錄入。
開通注冊中心同步模塊。
在MSHA控制臺的左側導航欄,選擇 。
選擇注冊中心同步服務。
在左側導航欄,選擇 。
在目標命名空間操作欄,單擊編輯。
在多活組件模塊,選擇異地雙活注冊中心同步服務。
說明需要開通異地架構,才可以看到異地雙活注冊中心同步服務選項。
步驟二:配置注冊中心同步集群
登錄多活容災MSHA控制臺。
在左側導航欄,選擇 。
在注冊中心同步集群頁面,單擊新增同步集群。
在新增同步集群配置向導頁面,選擇正確的地域,選中在步驟一:準備工作中錄入好的ECS服務器,單擊下一步。
說明此處可選多個ECS服務器,組成同步集群。
在配置集群配置向導頁面,輸入數據庫信息,操作完成后單擊下一步。
在確認安裝同步集群對話框中,確認ECS服務器8080端口已開放,選中我確認端口已開放,單擊確認。
在安裝、啟動集群配置向導頁面,等待集群安裝完成。
操作完成后,創建同步結束,可查看任務詳情。
相關操作
查看同步集群
在注冊中心同步集群頁面,查看已有的同步集群信息。
在注冊中心同步集群頁面,單擊同步集成名稱或擴縮容查看同步集群詳情。
在注冊中心同步集群頁面,單擊刷新刷新集群狀態,單擊健康檢查對集群進行健康檢查,檢查結果如下所示:
重試創建集群
當同步集群處于運行失敗或初始化失敗狀態時,可以單擊對應集群操作列的重試,進行重新創建操作。
說明如果創建集群時健康檢查步驟失敗,且重試創建無效,請檢查是否存在下列問題:
ECS服務器是否開放8080端口。
RDS是否和ECS服務器處于同一個VPC下。
RDS數據庫地址、數據庫名、賬號、密碼是否無誤。
RDS是否開放IP白名單。
同步集群擴容
為了保證服務的高可用,同步集群下可以有多個ECS實例共同同步,確保有一個不可用后,其余的能夠正常提供服務。
在注冊中心同步集群頁面,選擇待擴容的集群,單擊擴容。
在ECS擴容頁面,選擇步驟一:準備工作中添加的實例,操作完成后單擊確認。
重要擴容的ECS實例安全組必須開放8080端口。
在任務詳情頁面,等待任務安裝完畢。
同步集群縮容
在注冊中心同步集群頁面,選擇待卸載的實例,單擊卸載。
在確認卸載該同步集群對話框中,單擊確認。
在任務詳情頁面,等待任務卸載完畢,操作完成后單擊關閉。
說明如果卸載的實例是該同步集群下的最后一個實例,則會檢查是否還有同步任務使用該集群,存在同步任務時無法卸載。如果卸載最后一個實例成功,則所在的同步集群也會被卸載。
卸載同步集群
在注冊中心同步集群頁面,單擊卸載集群,將同步集群卸載。
說明如果存在同步任務時,無法卸載。
步驟三:配置注冊中心信息
在建立微服務同步任務之前,需要配置注冊中心信息。目前注冊中心同步支持Nacos到Nacos和ZooKeeper到ZooKeeper注冊中心之間的同步。
登錄多活容災MSHA控制臺。
在左側導航欄選擇多活實例,進入列表頁,選擇對應的多活實例,進入詳情頁。
在左側導航欄選擇服務層配置,選擇注冊中心同步配置。
在注冊中心同步配置頁面,單擊管理注冊中心。
在注冊中心列表頁面,單擊新增注冊中心。
在注冊中心列表頁面,輸入集群信息,然后單擊確認。
參數
說明
集群名稱
可自定義,但不允許重復。
集群類型
根據需要,可以選擇ZK或NACOS。
集群地址
集群地址為注冊中心的內網地址和端口。
集群地址支持批量錄入,以半角逗號(,)分隔不同的地址。
所在地域
根據需要,可以選擇您控制臺中已經配置好的地域。
說明默認要求注冊中心和同步集群下的實例位于相同的VPC下,如果注冊中心使用公網地址,需要提供的ECS本身可以訪問公網,否則會導致同步失敗。
相關操作
在注冊中心新增完成后,在注冊中心列表頁面:
查看已添加的所有注冊中心信息,可以通過集群名稱、集群地址和集群類型中的一項或多項搜索到已有的注冊中心信息。
單擊目標注冊中心操作列的刪除,刪除已創建的注冊中心信息。
說明若目標注冊中心下存在同步任務時,則無法刪除。
步驟四:配置注冊中心同步任務
登錄多活容災MSHA控制臺。
在左側導航欄選擇多活實例,進入列表頁,選擇對應的多活實例,進入詳情頁。
在左側導航欄選擇服務層配置,選擇注冊中心同步配置。
在注冊中心同步配置頁面,單擊新增同步任務。
新增Nacos-Nacos同步任務
在新增同步任務頁面,填寫同步任務相關配置信息:
參數
說明
同步集群
選擇已新建的同步集群。具體操作,請參見步驟二:配置注冊中心同步集群。
源注冊中心
根據需要,選擇已新建的注冊中心作為源注冊中心。具體操作,請參見步驟三:配置注冊中心信息。
目標注冊中心
根據需要,選擇已新建的注冊中心作為目標注冊中心。具體操作,請參見步驟三:配置注冊中心信息。
命名空間
輸入Nacos的命名空間ID。具體操作,請參見創建命名空間。
如果不填默認為public。
重要Nacos同步時源和目標注冊中心命名空間ID需要保持一致,Nacos1.2以上版本支持自定義命名空間ID。
分組名
填寫Nacos分組名。
如果不填默認為DEFAULT_GROUP。
服務名
輸入的服務名需要與實際注冊中心查詢到的服務名保持一致。
支持批量輸入需要同步的服務名,用半角逗號(,)分隔不同的服務名。
說明當Nacos為源注冊中心時,支持展示該注冊中心中指定命名空間和分組名下的所有服務名。您也可以單擊選擇服務名,在選擇服務名稱頁面選擇一條或多條服務進行錄入。
操作完成后,單擊確定。
新增ZooKeeper-ZooKeeper同步任務
說明目前ZooKeeper間同步僅支持Dubbo服務。
在新增同步任務頁面,填寫同步任務相關配置信息:
參數
說明
同步集群
選擇已新建的同步集群。具體操作,請參見步驟二:配置注冊中心同步集群。
源注冊中心
根據需要,選擇已新建的注冊中心作為源注冊中心。具體操作,請參見步驟三:配置注冊中心信息。
目標注冊中心
根據需要,選擇已新建的注冊中心作為目標注冊中心。具體操作,請參見步驟三:配置注冊中心信息。
分組名
填寫ZooKeeper分組名。
說明分組名對應Dubbo服務的Group,不填分組名表示不做Group上的限制。
版本
輸入ZooKeeper版本信息。
說明版本對應Dubbo服務的Version,不填版本表示不做Version上的限制。
服務名
輸入的服務名需要與實際注冊中心查詢到的服務名保持一致。
支持批量輸入需要同步的服務名,用半角逗號(,)分隔不同的服務名。
ZooKeeper-ZooKeeper同步任務支持全量同步,服務名輸入“*”會同步對應 Group和Version下的所有服務。
說明目前暫不支持展示ZooKeeper源注冊中心中所有服務名的功能。
操作完成后,單擊確認。
批量創建
當一次錄入多個服務后,MSHA控制臺會異步執行這些任務,此時任務的運行狀態為同步任務創建中。
當同步任務狀態為同步中時,說明該服務已經從源注冊中心同步到目標注冊中心。
相關操作
注冊中心同步配置完成后,在注冊中心同步配置頁面:
暫停同步任務:選擇運行狀態為運行中的同步配置任務,單擊暫停,暫停后微服務同步結束,該服務會在目標注冊中心下線。當同步任務狀態為已暫停時,說明該同步任務已停止。
說明暫停和刪除都可以終止當前的服務同步,效果上一致,但刪除會清除MSHA控制臺和RDS中的任務信息。為了避免重復輸入任務,非必要時盡量使用暫停功能。
恢復同步任務:選擇運行狀態為已暫停的同步配置任務,單擊重新同步,運行狀態變為同步中,重新將該服務已經從源注冊中心同步到目標注冊中心。
刪除同步任務:選擇待刪除的同步配置任務信息,單擊刪除,在確定刪除該同步任務對話框中,單擊確定。刪除后微服務同步結束,且該任務從頁面中消失。
重要批量刪除同步任務可能會發生某些任務沒有停止同步的情況,如果您想安全地批量刪除任務,請先執行批量暫停操作,之后再批量刪除這些已暫停的同步任務。
重試同步任務:選擇運行狀態為創建任務失敗或創建超時的同步配置任務,單擊重試,重新創建任務。如果多次重試仍然不成功,請檢查ECS服務器健康檢查是否通過。
批量操作:通過勾選同步任務,您可批量進行暫停、重新同步和刪除操作。批量操作異步執行任務,需要等待一段時間完成所有操作。