【问题标题】:Kafka Mirror Maker failing to replicate __consumer_offset topicKafka Mirror Maker 无法复制 __consumer_offset 主题
【发布时间】:2020-09-20 04:32:15
【问题描述】:

我正在尝试使用镜像制作器来复制 __consumer_offsets 主题以及其他主题。

它给出了如下所述的错误。

[2018-10-24 16:16:03,802] ERROR 向主题发送消息时出错 __consumer_offsets with key: 16 bytes, value: 445 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback) org.apache.kafka.common.errors.InvalidTopicException:请求 试图对无效主题执行操作。 [2018-10-24 16:16:03,828] ERROR 向主题发送消息时出错 __consumer_offsets with key: 29 bytes, value: 754 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback) org.apache.kafka.common.errors.InvalidTopicException:请求 试图对无效主题执行操作。

有没有办法解决这个问题?

在幻灯片 21 上 SlideShare 的一个融合演示中,它提到了在多个数据中心中复制偏移主题。有人可以告诉我实现相同目标的可能方法吗?

或者还有其他更好的方法来制定 Kafka 的备份和恢复策略。

【问题讨论】:

  • 一般来说,复制偏移量主题是一个坏主意,除非您保证两个集群之间的消费者组名称以及主题内的偏移量相同,特别是如果您在之后启动镜像源主题的保留期。此外,该幻灯片没有明确说明您应该这样做
  • 是的,在我的情况下,消费者组名称相同,镜像制造商、源集群和目标集群将同时启动。源和目标中的所有主题都将具有相同数量的分区。在源完全关闭之前,不会有消费者在目标集群中运行。
  • 第一个集群宕机后,您打算如何将第二个集群的消耗偏移量移回第一个集群?注意:听起来您正在尝试重新创建基于 Kafka Connect 而非 MirrorMaker 的 Confluent Replicator

标签: apache-kafka confluent-platform mirroring consumer


【解决方案1】:

在你的 consumer.config 中添加这个:

exclude.internal.topics=false

并将其添加到您的 producer.config 中:

client.id=__admin_client


原因是,除非您声明 AdminClient.scala 使用的 client.id=__admin_client,否则生产者无法写入内部主题。在这里找到:https://issues.apache.org/jira/browse/KAFKA-6524

【讨论】:

  • 感谢@amdelamar 的回复。我会测试并更新你。
  • @AbhishekVerma 你测试了吗?按照这个逻辑,我遇到了一些问题。更多细节在这里stackoverflow.com/questions/54449324/…
  • @suraj_fale 我验证了这个解决方案。它对我有用。
  • @suraj_fale 这对 MirrorMaker 2.0 有效吗?我面临同样的问题,除了 __consumer_offsets 之外的所有主题都被复制。我正在使用 MirrorMaker 2.0 作为 Kafka 连接器。
  • @AmitYadav 我们还没有迁移到 MirrorMaker 2.0。但这就是我的理解。顺便说一句,您使用的是哪个 Kafka 版本?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-22
  • 1970-01-01
  • 1970-01-01
  • 2022-12-19
  • 2020-04-04
相关资源
最近更新 更多