《快递行业云上技术服务白皮书》——4. 快递行业技术服务最佳实践——4.1 核心业务上云最佳实践——4.1.3 业务迁移上云最佳实践(2) https://developer.aliyun.com/article/1224234?groupCode=supportservice
4.1.3.2 应用平滑上云-开源RocketMQ迁移上云
和开源RocketMQ相比,阿里云消息队列RocketMQ版具有更高的稳定性、安全性及更完善的运维体系。您可以将开源RocketMQ集群迁移到消息队列RocketMQ版上以获得更好的业务体验,本文介绍开源RocketMQ集群迁移到消息队列RocketMQ版的原理和操作流程。
4.1.3.2.1 迁移原理
对于消息队列来说,如果要实现集群迁移,只需消费完旧集群的消息即可。由于
Producer和Consumer都是集群化的,您可以通过一台一台操作的方式实现上层业务
无感知。
4.1.3.2.2 云原生RocketMQ优势
和开源RocketMQ相比,消息队列RocketMQ版具有以下优势:
高稳定性:消息队列RocketMQ版作为阿里巴巴双十一官方指定消息产品,支撑阿里巴巴集团所有的消息服务,历经十余年高可用与高可靠的严苛考验,具有更高的稳定性。
高性能:历年双11购物狂欢节零点千万级TPS、万亿级数据洪峰,创造了全球最大的业务消息并发以及流转纪录(日志类消息除外);在始终保证高性能前提下,支持亿级消息堆积,不影响集群的正常服务。
丰富的消息类型:提供丰富的消息类型,满足各种严苛场景下的高级特性需求,当前支持的消息类型涵盖普通消息、顺序消息(全局顺序和分区顺序)、分布式事务消息、定时消息、延时消息。
完善的运维体系:消息队列RocketMQ版支持消息查询、全链路消息轨迹查询以及消息回溯等功能,帮助您快速发现和处理系统问题,提高运维效率。
安全访问控制:以消息主题、订阅组的粒度,对每一条消息的收、发请求都进行严格的访问控制,确保消息的安全性;全面支持阿里云RAM主子账号、黑白名单、STS等功能,支持TLS传输加密协议。
4.1.3.2.3 迁移操作流程
开源RocketMQ迁移到消息队列RocketMQ版的操作流程如下图所示:
步骤一:创建迁移任务
在消息队列RocketMQ版控制台创建迁移任务,将开源RocketMQ导出的元数据文件导入至消息队列RocketMQ版。
1)登录消息队列RocketMQ版控制台。
2)在左侧导航栏单击迁移上云。
3)在顶部菜单栏,选择地域,如华东1(杭州)。
4)在迁移上云页面左上角单击创建任务。
5)在创建任务配置向导页面,完成以下操作并单击下一步。
a)在任务名称文本框输入迁移上云的任务名称。
说明:任务名称长度限制为3~64个字符,只能包含中文、英文、数字、短划线(-)和下划线(_)。
b)单击元数据参数右侧的点击上传元数据文件按钮,选择提前导出的JSON格式的元数据文件。元数据导出操作,请参见准备工作。
步骤二:迁移评估
从技术和成本方面分别评估迁移上云的条件。
表八:迁移评估
步骤三:迁移元数据
将Topic和Group的元数据迁移至云上的消息队列RocketMQ版实例中。
1) 登录消息队列RocketMQ版控制台。
2) 在左侧导航栏单击迁移上云。
3) 在顶部菜单栏,选择地域,如华东1(杭州)。
4) 在迁移上云任务列表中选择指定的任务,在其操作列单击详情。
5) 在迁移元数据配置向导页面的目标实例下拉菜单中,选择已创建好的消息队列RocketMQ版实例作为元数据导入的目标实例,并单击确认。
6) 此时所有的Group元数据已经在后台完成自动导入,界面只显示所有Topic的资源列表,您需要完成所有Topic类型的订正及导入操作后才能查看所有资源的导入结果。
7) 完成所有Topic消息类型的订正和导入操作,然后单击页面下方的确认。
a),在资源列表中选择指定的Topic资源,在其消息类型列的下拉菜单中选择Topic类型,然后在其操作列单击确认并导入;您也可以选中多个Topic,确认完所有选中Topic的类型后,单击页面左下角的批量确认并导入。
b) 在弹出的提示对话框中单击确认。
资源列表中将显示所有Topic和Group的信息及迁移结果。您可以在资源列表上方的迁移详情区域查看所有资源的迁移结果总览。您也可以根据资源名称、资源类型或执行结果进行过滤,查看指定资源的迁移结果。
步骤四:迁移消息服务
分批将消息生产者集群和消费者集群的节点连接到云上的消息队列RocketMQ版实例,完成消息收发链路的平滑迁移。
1) 切换消费者集群中部分节点的接入信息,将这部分消费者接入到云上的消息队列RocketMQ版。切换的这部分消费者将消费消息队列RocketMQ版集群中的消息,剩余消费者继续消费开源RocketMQ集群中的消息。
2) 切换生产者集群中部分节点的接入信息,将这部分生产者接入到云上消息队列RocketMQ版。切换的这部分生产者将发送消息到消息队列RocketMQ版集群中;剩余的生产者还是将消息发送到开源RocketMQ集群中。
3)将剩余的生产者全部接入到消息队列RocketMQ版上。
4)此时所有消息将全部被发送到云上的消息队列RocketMQ版集群中。
5)将剩余的消费者全部接入到消息队列RocketMQ版上。
注意:切换剩余消费者之前,请确保开源RocketMQ中的消息已全部消费完,否则可能会导致消费遗漏。您可以通过查看开源RocketMQ中的消息堆积量来判断消息是否消费完成。
此时所有的生产者和消费者都迁移到消息队列RocketMQ版集群上,所有的消息收发都在消息队列RocketMQ版集群中完成。
《快递行业云上技术服务白皮书》——4. 快递行业技术服务最佳实践——4.1 核心业务上云最佳实践——4.1.3 业务迁移上云最佳实践(4) https://developer.aliyun.com/article/1224230?groupCode=supportservice