本文介绍如何将自建Kafka集群上的消费者程序平滑地迁移到云消息队列 Kafka 版。
背景信息
云消息队列 Kafka 版控制台提供迁移实例功能,您可以使用该功能将自建Kafka集群或其他云Kafka集群的元数据(Topic和Group配置信息)和消息数据同步到目标集群,迁移完成后目标集群的元数据与源集群的元数据保持一致并且持续更新。本文以开源Apache Kafka为例介绍使用实例迁移功能将自建集群上的消费者程序迁移到云消息队列 Kafka 版。
前提条件
- 部署开源Apache Kafka集群
- 购买并部署云消息队列 Kafka 版实例:
创建迁移任务
- 登录云消息队列 Kafka 版控制台,在概览页面的资源分布区域,选择地域。
- 在左侧菜单栏单击迁移路由,然后从实例列表的下拉列表选择目标实例,单击创建任务。
- 在创建任务配置向导页面,完成以下操作。
- 创建完成后,在迁移路由页面,从实例列表的下拉列表选择目标实例,在目标实例列表中找到创建的任务,单击其操作列的部署。在迁移路由页面,您可以看到创建的任务状态为运行中,则说明任务创建成功。您可以在左侧导航栏的实例列表页面查看迁移到云消息队列 Kafka 版上的Apache Kafka集群。
在创建的迁移任务右侧操作列,您可以查看任务详情、查看同步进度、修改任务参数配置、暂停任务和删除任务。
启动消费者程序
通过实例迁移功能,目标实例将源实例的全量数据追平并开始追加增量后:
- 若您创建消费者程序时使用Subscribe方式消费消息,可以直接在目标实例启动新的消费者程序。新消费者程序启动后,目标实例会阻止迁移组件继续同步消费位点。当确认新消费者程序没有问题后,再在源集群停止旧消费者程序。如果不停止旧消费者程序,那么当新消费者程序全部停止后,迁移组件会继续同步消费位点,产生不可预知的问题,例如覆盖新消费者程序提交的位点。
- 若您创建消费者程序时使用Assign方式消费消息,请先在源集群停止旧消费者程序,旧消费者程序停止后,迁移组件也会停止同步旧消费者程序所用的消费组的消费位点,然后再在目标实例启动新消费者程序。
- 若您无法确定消费者程序使用哪种消费方式,请先在源集群停止旧消费者程序,旧消费者程序停止后,迁移组件也会停止同步旧消费者程序所用的消费组的消费位点,然后再在目标实例启动新消费者程序。