注册中心同步组件为用户提供源注册中心上的微服务到目标注册中心的同步功能,并通过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服务器健康检查是否通过。
批量操作:通过勾选同步任务,您可批量进行暂停、重新同步和删除操作。批量操作异步执行任务,需要等待一段时间完成所有操作。