为什么我的卡夫卡主题不能和经纪人一起消费?

问题描述:

我的问题是,我有三个经纪人Kafka集群和一个可用性要求,当我的三个经纪人中有一个或两个经纪人倒闭时,可以访问并获得一个主题。为什么我的卡夫卡主题不能和经纪人一起消费?

我也有一个复制因子为3的可靠性要求。这些似乎对我有冲突的要求。这里是我的问题是如何体现:

  1. 我创建了一个新的话题复制因子3
  2. 我发几条消息,该主题
  3. 我杀了我的经纪公司之一,以模拟代理问题
  4. 我试图消耗我创建的主题
  5. 我的消费挂起
  6. 我回顾我的日志,看看错误: 活着经纪人数“2”不符合上面的偏移量所需的复制因子“3” IC

如果我把所有经纪人的offsets.topic.replication.factor设置为1,那么我就能够生产和消费我的话题,即使我的主题级别复制因子为3

这是一个好的配置吗?或者你可以通过这种方式看到任何陷阱吗?

创建主题时,您只需要与您的复制因子一样多的代理。

我想你的情况,你开始一个新的集群,并没有消费者已经连接。在这种情况下,__consumer_offsets内部主题不存在,因为它仅在首次需要时才创建。因此,首先连接一个消费者一会儿,然后杀死其中一个经纪人。

除此之外,为了消耗你只需要1个经纪人,分区的领导者。

+0

就是这样!谢谢你Mickael Maison! –

+0

我真的很难重现我的问题。但是,如果我去删除所有偏移主题以强制用户重新创建它们,我会再次出现错误。获得的经验:如果您关闭代理并且您的offset.replication.factor当前不可满足,请不要让消费者连接到新群集。 –