为什么我的kafka主题在代理商关闭时无法使用?

时间:2017-10-20 16:43:03

标签: apache-kafka replication

我的问题是,我有三个经纪人Kafka群集和一个可用性要求,当我的三个经纪人中的一个或两个失败时,可以访问消费并生成一个主题。

我还有一个可靠性要求,复制因子为3.这些对我来说似乎是相互矛盾的要求。以下是我的问题所表现的方式:

  1. 我使用复制因子3
  2. 创建了一个新主题
  3. 我向该主题发送了几条消息
  4. 我杀了我的一个经纪人来模拟经纪人问题
  5. 我尝试使用我创建的主题
  6. 我的消费者挂起
  7. 我查看我的日志并查看错误: 活动代理“2”的数量不符合偏移主题所需的复制因子“3”
  8. 如果我将我的所有经纪人的offsets.topic.replication.factor设置为1,那么即使我将主题级复制因子设置为3,我也能够生成和使用我的主题。

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

1 个答案:

答案 0 :(得分:0)

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

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

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