【发布时间】:2022-06-13 18:06:46
【问题描述】:
我在多个活动的 Kafka (2.6) 集群(名为 prod1、prod2)上运行 Apache MirrorMaker 2.7。所以prod1 上的topic 被MirrorMaker2 复制为prod2 集群上的prod1.topic。
我在 prod1 和 prod2 上使用相同的 kafka 消费者组 ID 运行 Kafka 消费者服务。
我的 MirrorMaker2 配置中有 emit.checkpoints.interval.seconds=1,导致每秒从
topic 到 prod1.topic。
问题是,每次我的生产者在prod1 上向topic 生成数据时,数据都会复制到prod2 上的prod1.topic,并由我的消费者在prod2 上使用,在最新提交偏移之前我的 prod1 消费者被 MirrorMaker2 翻译成 prod2。
如果我在数据生成到prod1 几秒钟后启动我的prod2 消费者,则不会发生这种情况,因为到那时,prod2 上的最新提交偏移量将到达,但是,@987654342 上的两个消费者@ 需要实时运行,因为我使用 prod1/2 作为主动-主动部署配置。
那么我如何确保生成的任何数据只被prod1/prod2 消费者中的任何一个消费一次?
【问题讨论】:
标签: apache-kafka apache-kafka-mirrormaker