文档

Confluent集群迁移教程

更新时间:

当您需要把Topic从一个Confluent集群迁移至另一个集群时,阿里云提供两种迁移方案:迁移操作和数据迁移。迁移操作适用于消息保留较少的场景,操作简单;数据迁移使用ClusterLink做数据迁移,由阿里云技术支持提供远程协助,适用于数据重要,消息保留时间长、需要将数据迁移到新的集群上的场景。

迁移前需注意什么?

  • 在迁移过程中,源集群的Confluent Platform版本不能低于6.1。

  • 需检查源集群是否使用了Schema Registry的相关功能,若有则需要进行Schema的迁移。

  • 暂不支持组件的迁移。

  • 暂不支持Transation Topic的迁移。

  • 迁移前需要评估实例的压力情况,包括入/出流量。建议在业务低峰期进行迁移。

迁移前需准备什么?

  • 源集群的URL信息。

  • 需要迁移的Topic的账号和密码。

  • 源集群Cluster ID。

  • Root账号密码(若需要阿里云技术支持协助完成迁移需提供此信息)

  • 评估集群的基本情况,包括组件信息,流量信息。

前提条件

迁移方式

数据迁移

当需要迁移数据时,可采用该迁移方式,使用ClusterLink做数据迁移。该方式适合数据重要,消息保留时间长,需要将数据迁移到新的集群上的场景。

使用ClusterLink做数据迁移能够将旧集群数据迁移到新的集群,需要提交工单申请。

数据不迁移(推荐)

当不需要迁移数据时,无需使用ClusterLink做数据迁移,只需等到旧实例的数据过期或者数据不需要后,迁移到新的集群。该方式适合消息保留较少的场景。

说明

由于消息数据不是持久化长时间存储,具备过期删除特性,所以迁移时建议您采用此方式。

数据放弃

直接使用新的集群,将生产者和消费者都迁移到新的集群上。此方式适用于数据可以丢弃或者消息的生产者方便重新生产数据的场景。

迁移步骤

为方便您更加快捷完成迁移过程,我们提供迁移操作和数据迁移两种迁移方式,迁移操作由您独立操作,数据迁移由阿里云技术支持远程辅助完成,若有需要请提交工单申请。

迁移操作

LDAP迁移

登录阿里云Confluent集群控制台,将账号密码信息更新到新的集群上。

  1. 登录云消息队列 Kafka 版控制台,在左侧导航栏,单击实例列表

  2. 实例列表页面,单击目标实例名称。

  3. 实例详情页面,单击左侧操作栏的用户管理,然后单击添加LDAP用户

  4. 添加LDAP用户对话框,设置用户名称、密码并确认密码,单击确认

  5. 登录Control Center,详情请参见登录Control Center

  6. 在右侧菜单栏选择image > MANAGE ROLE ASSIGNMENTS,然后单击Assignments,选择目标新集群。

  7. 在集群详情页面,单击右侧Add role assignment,将LDAP权限信息更新到新的集群上。image

数据迁移

  1. 在新的集群中创建旧集群对应的Topic。详情请参见创建Topic

  2. 修改生产者的接入点,将生产者转移到新的集群上。

  3. 等待消费者在旧的集群上消费完成,修改消费者的接入点,将消费者转移到新的集群上。

  4. 下线旧集群。

Schema迁移

在新的集群中创建Topic后,可以自行在Topic上创建Schema。

image

数据迁移

LDAP迁移

阿里云将通过提供Curl命令的方式辅助您进行迁移。

  1. 登录云消息队列 Kafka 版控制台,将LDAP用户账号密码信息添加至新集群中,详情请参见新增用户

  2. 阿里云向您提供相关Curl命令以拉取您的LDAP权限信息。

  3. 您将LDAP权限信息发送给阿里云技术支持。

  4. 执行阿里云提供的Curl命令,将权限信息更新到新的Confluent集群上。

    示例如下:

    curl -i -X POST \
       -H "Authorization:Basic XXXX==" \
       -H "Content-Type:application/json" \
       -d \
    '{"clusters":{"kafka-cluster":"XXXX"},"path":[]}' \
     'https://mds-XXXX.csp.aliyuncs.com/security/1.0/lookup/managed/rolebindings/principal/User:root'

通过ClusterLink迁移数据

Confluent提供了ClusterLink这一迁移工具,能够无损地将Topic从一个Cluster迁移到另一个Cluster上。 ClusterLink运行在Kafka Broker上,通过创建Mirror Topic的方式,使用Consumer去消费源集群的数据。等到新的Topic跟上了旧集群的Topic,即可迁移生产者和消费者到新的集群,并将其状态从同步中改为正常状态,即完成了同步。

image
  1. 阿里云技术支持创建Clusterlink任务,并且设置需要同步的Mirror Topic。Clusterlink开启迁移后,等待Mirror的Lag靠近0。

  2. 您停止源Topic的消息生产,待消费者消费完剩余数据后再停止消费者。

    说明

    如果这里有微服务同事进行生产和消费,那么需要再停止生产者时停止这样的微服务。

  3. 当Mirror Lag为0时,阿里云技术支持将Mirror Topic的状态设置为PROMOTE,成为正式的Topic意味着这个Topic可以在Destination Cluster上进行生产。

  4. 将所有的消费者和生产者都移动到新的集群上。当数据已经完成迁移,阿里云技术支持会修改域名解析,将域名重定向到新的集群。

  5. 您重新启动生产者和消费者,就可以完成消费者和生产者从旧集群到新集群的转移。

  6. 检查迁移后的Topic是否能正常工作。

通过SchemaLink迁移Schema

您将需要通过SchemaLink迁移的Topic提供给阿里云技术支持,阿里云侧创建SchemaLink,将源集群的Schema信息同步到目标集群的Schema上。这里需要保证在迁移过程中,不要创建新的Schema或者对Topic进行变动。

迁移后验证

  1. 检查LDAP、ACL权限是否正确;关注LDAP各个条目是否一致;日志是否有报错;各个功能是否正常;调用API访问LDAP获取的结果是否一致;这里阿里云侧会通过执行LDAP API获取的信息进行判断。

  2. 检查Topic是否已成功新建。

  3. 检查各个Topic的Offset是否和旧集群对应,是否有消息丢失、重复。

  4. 检查迁移后功能是否正常。