迁移kafka集群的最佳方法

gijlo24d  于 2021-06-08  发布在  Kafka
关注(0)|答案(2)|浏览(355)

我有一个Kafka2节点集群。我的Kafka版本是0.8.1。
我需要将它迁移到另一组服务器。
迁移时保持不停机和不丢失数据的最佳方法是什么?

2nbm6dog

2nbm6dog1#

假设新服务器和旧服务器一起生活在同一个数据中心中,最简单的方法是为所有现有分区添加新服务器作为副本。Kafka将使他们同步成为ISR。如果它们是同步的,您应该能够安全地关闭旧节点。
这当然取决于你的消费者是如何配置的(他们会自动找到新的节点吗?)以及你使用的是哪个版本的kafka。
请看一下:
https://kafka.apache.org/documentation.html#basic_ops_cluster_expansion
https://kafka.apache.org/documentation.html#basic_ops_decommissioning_brokers
您需要使用kafka-reassign-partitions.sh工具来实现这一点。首先在非生产环境中测试。

mnemlml8

mnemlml82#

我建议你用Kafka制镜机。看一看https://cwiki.apache.org/confluence/pages/viewpage.action?pageid=27846330 或者https://kafka.apache.org/documentation.html#basic_ops_mirror_maker
基本上你是这样运行的:

cp /usr/lib/kafka/config/consumer.properties oldCluster.consumer.properties
cp /usr/lib/kafka/config/producer.properties newCluster.producer.properties

而不是设置旧的群集,例如:

bootstrap.servers=clusterOldServer1.full.name:9092
auto.offset.reset=earliest

# zookeeper.connect=commentedOutZookeeperForOlderKafka

然后运行migrate命令,该命令将作为“daemon”运行:

time kafka-run-class kafka.tools.MirrorMaker --consumer.config oldCluster.consumer.properties --producer.config newCluster.producer.properties --whitelist="topic.*regexp"

相关问题