自建Kafka集群迁移上云

阿里云:Alibaba Cloud Help Center - Cloud Definition and Explanation of Cloud Based Services - Alibaba Cloud

腾讯云:消息队列 CKafka 方案1:单写双消费迁移 - 消息平台操作指南 - 文档中心 - 腾讯云

自建Kafka集群迁移

迁移前准备

1、kafka集群规划,主要考虑磁盘容量以及扩展性,如果数据量比较大,可以考虑部署5个broker节点,每个节点挂载4块数据盘;

2、创建topic,分区数和副本数建议与旧集群一致;

注意点

1、由于新集群没有旧集群的消费组信息,切换之前请确认代码配置消费组策略是latest(从最新消费)还是earliest(从头消费),以下针对不同方案提供不同的处理方式

2、kafka自带的kafka-mirror-maker.sh数据同步工具,迁移数据速度比较慢,并且新旧topic消息的分区和offset不一致

方案一:不迁移数据

 注意:

如果消费组策略是earliest(从头消费),切换消费者之前不需要做任何配置;

如果消费组策略是latest(从最新消费),切换消费者之前需要在新集群手动创建消费组并把消费组策略调为earliest

1、切换生产流,生产者将数据生产到新的Kafka 实例;

2、等待消费者持续消费旧Kafka集群的数据,直到消费完成(kafdrop或者grafana可以观察);

3、切换消费者,消费新kafka集群数据;

4、观察数据,生产和消费正常,旧集群没有对应TCP连接,即迁移完毕。

方案二:迁移数据

 注意:

如果消费组策略是latest(从最新消费),切换消费者之前不需要做任何配置;

如果消费组策略是earliest(从头消费),切换消费者之前需要在新集群手动创建消费组并把消费组策略调为latest

1、配置kafka集群数据同步;

2、停止生产流;

3、等待消费者持续消费旧Kafka集群的数据,直到消费完成(kafdrop或者grafana可以观察);

4、切换消费者到新kafka集群;

5、启动生产流,生产者将数据生产到新的Kafka 实例;

6、观察数据,生产和消费正常,旧集群没有对应TCP连接,即迁移完毕。

方案三:迁移数据特殊情况(消费者做幂等处理或者offset不提交到kafka)

 注意:

如果消费组策略是earliest(从头消费),切换消费者之前不需要做任何配置;

如果消费组策略是latest(从最新消费),切换消费者之前需要在新集群手动创建消费组并把消费组策略调为earliest

1、配置kafka集群数据同步;

2、切换生产流,生产者将数据生产到新的Kafka 实例;

3、切换消费者,消费新kafka集群数据;

4、观察数据,生产和消费正常,旧集群没有对应TCP连接,即迁移完毕。

 

迁移建议

1、如果旧集群topic设置了数据过期时间,建议使用方案一,迁移后等数据过期后即可回收旧集群;

2、如果旧集群topic数据永久保存,建议使用方案一,旧集群数据使用nifi同步到冷备集群即可回收旧机器;

3、如果对消息的分区和offset有要求,建议使用方案二

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐