RICH-ATONE

Kafka MirrorMaker 跨集群数据迁移

参考:

1、使用 Apache Kafka 的 MirrorMaker 迁移集群

sh /home/pirate/programs/kafka/bin/kafka-run-class.sh -daemon -name tutorials -loggc  kafka.tools.MirrorMaker --consumer.config /home/pirate/programs/kafka/config/mirror-consumer.properties --producer.config /home/pirate/programs/kafka/config/mirror-producer.properties --whitelist 'udplog-role-create|udplog-role-login|udplog-role-logout'

在此命令中,需要配置消费端和生产端ip端口,config/mirrormaker-consumer.properties 指向 CLUSTER_ONPREM 中的引导代理;例如,bootstrap.servers=localhost:9092config/mirrormaker-producer.properties 指向 CLUSTER_AWSMSK 中的引导代理;例如,bootstrap.servers=10.0.0.237:9092,10.0.2.196:9092,10.0.1.233:9092。 

 

2、大型kafka集群平滑迁移

  1. 配套的zk迁移就比较简单了,起新节点加入zk集群,稳定后关停旧节点。
  2. 新增N个broker加入集群,将所有topic分区只分配给新broker,执行分配任务后,kafka将旧broker的分区数据复制到新broker,新broker成为各分区的leader,随后kafka删除旧broker上的分区数据;
  3. 整个过程中客户端应用正常生产消费消息,执行结束后使用新的消费者组从头消费可以获取到全部历史消息。
  4. 停止旧broker后,正在运行的客户端应用正常生产消费消息,新建客户端连接旧broker失败,连接新broker则正常。

posted on 2021-12-03 18:13  RICH-ATONE  阅读(400)  评论(0编辑  收藏  举报

导航