利用Kafka Mirror功能实现多集群数据同步

需要两个配置文件

消费远端消息 mirrormaker-consumer.config (注: remote-kafka 需要在 /etc/hosts 里添加配置, 下同)

1
2
bootstrap.servers=remote-kafka:9092
group.id=mirrormaker-mirror-1

投递到本地的Kafka集群 mirrormaker-producer.config

1
2
bootstrap.servers=local-kafka:9092
acks=1

启动 Kafka Mirror Maker

1
2
#!/bin/bash
kafka-mirror-maker --consumer.config mirrormaker-consumer.config --producer.config mirrormaker-producer.config --include 'topic1|topic2'

mirror-maker虽然不被confluent看重(可能是因为他们有专门的同步工具), 不过还是非常好用的. 在线上实际跑了将近三个月的时间, 其自带的重试功能可以保证同步意外断开之后无人值守地自动恢复.

参考

retention.ms - Kafka topic configuration reference | Confluent Documentation 配置消息过期时间

Docker Configuration Parameters for Confluent Platform

Migrating clusters using Apache Kafka’s MirrorMaker

Kafka MirrorMaker

Kafka mirroring (MirrorMaker)