apache-kafka - Kafka Mirror Maker 不复制消费者组偏移量
问题描述
我们已经设置了 MirrorMaker 来跨两个 Kafka 集群复制消息。我们还设置exclude.internal.topic=false
了镜像制造商消费者属性来复制内部主题。我假设这也将复制__consumer_offset topic
,这将反过来同步辅助集群中的消费者组偏移量。
但是当我们在辅助集群中启动消费者组时,它从一开始就开始消费消息,所以看起来消费者组偏移量没有在辅助集群中复制。
谁能提供一些建议,我们如何使用 MirrorMaker 或任何其他解决方案同步辅助集群中的消费者组偏移量?
解决方案
乍一看,复制该__consumer_offsets
主题似乎是个好主意,但实际上并不会像您期望的那样工作。
在跨不同集群复制主题时,在大多数情况下,源集群和目标集群之间的记录偏移量会有所不同。两个集群之间偏移量不同的原因包括:
- 由于其至少一次语义,来自 Mirror Maker 的重复消息
- 由于重试,消息顺序不同
- 由于保留限制,源集群上的第一个偏移量不为零
这使得__consumer_offsets
目标集群中无用的内容。
Mirror Maker 2将成为 Kafka 2.4(预计于 2019 年 11 月/12 月发布)的一部分,提供了一种“转换”偏移量的方法,因此消费者可以在集群之间轻松迁移。
推荐阅读
- xslt - XSL:FO - 两个动态区域的分页符?
- html - 分页类未在 html 中应用
- robotframework - 如何在 Robot Framework 中的循环中执行循环
- android - 用户从 Android 应用中选择日期/时间后在日历中设置提醒
- php - Cycle 没有显示 SQL 中显示的所有结果
- sql - 当oracle中特定周不存在数据时如何将值填充为零
- java - Mocktio 可以模拟持久性提供程序,以便 jenkins(或其他管道工具)可以在没有数据库的情况下执行 JUnit 测试吗?
- pentaho - 无法从数据库结果集中获取值 'String(34)',索引 2
- php - 在 REST API 中搜索特定 id
- css - 如何在引导程序中设置下拉项的宽度?