Ubuntu上Kafka迁移步骤(以自建集群迁移为例)
server.properties等核心参数,如broker.id、listeners、zookeeper.connect)。/var/lib/kafka/data目录下的消息数据)、配置文件(server.properties、zookeeper.properties)及Topic元数据(可通过kafka-topics.sh --describe导出),防止迁移失败无法恢复。若需迁移Topic配置(分区数、副本数、ACL权限等),可使用Kafka自带的MirrorMaker 2工具(支持元数据同步)。
consumer.properties(源集群配置):设置bootstrap.servers为源集群Broker地址(如source-broker1:9092,source-broker2:9092),group.id为迁移组ID(如migration-group),auto.offset.reset为earliest(从最早偏移量读取)。producer.properties(目标集群配置):设置bootstrap.servers为目标集群Broker地址(如target-broker1:9092,target-broker2:9092)。./kafka-mirror-maker.sh --consumer.config config/consumer.properties --producer.config config/producer.properties --whitelist=".*"(--whitelist指定需迁移的Topic(支持正则,如topic1,topic2或.*表示全部)),同步完成后,目标集群将拥有与源集群一致的Topic结构。kafka-consumer-groups.sh工具监控消费进度,确保旧集群中所有Topic的消息被消费完毕(如./kafka-consumer-groups.sh --bootstrap-server source-broker:9092 --describe --group my-group,查看CURRENT-OFFSET与LOG-END-OFFSET是否一致)。bootstrap.servers指向目标集群地址),重启消费者应用,开始从目标集群消费消息。bootstrap.servers指向目标集群地址),重启生产者应用,开始向目标集群发送消息。bootstrap.servers指向目标集群地址),重启消费者应用,开始从目标集群消费消息。kafka-topics.sh工具对比源集群与目标集群的Topic配置(分区数、副本数、ACL权限等),例如:
./kafka-topics.sh --describe --zookeeper source-zk:2181 --topic my-topic./kafka-topics.sh --describe --bootstrap-server target-broker:9092 --topic my-topickafka-console-consumer.sh工具抽样检查源集群与目标集群的消息内容是否一致(如从两个集群消费同一Topic的相同偏移量消息,对比内容),或使用第三方工具(如Confluent Control Center)进行自动化校验。./kafka-consumer-groups.sh --bootstrap-server target-broker:9092 --describe --group my-group,查看CURRENT-OFFSET是否等于源集群的LOG-END-OFFSET)。bootstrap.servers配置永久修改为目标集群地址,确保业务完全运行在新集群上。/var/lib/kafka/data)、日志目录(/var/log/kafka)及备份文件,释放存储空间。