我的问题是,当我的三个经纪人中的一个或两个失败时,我有一个三个经纪人Kafka集群和一个可用性要求,可以访问消费并生成一个主题 .
我还有一个可靠性要求,复制因子为3.这些似乎对我来说是相互冲突的要求 . 以下是我的问题所表现的方式:
-
我创建了一个复制因子为3的新主题
-
我向该主题发送了几条消息
-
我杀了我的一个经纪人来模拟经纪人问题
-
我尝试使用我创建的主题
-
我的消费者挂了
-
我查看我的日志并查看错误:活动代理数'2'不符合偏移主题所需的复制因子'3'
如果我将所有代理的offsets.topic.replication.factor设置为1,那么即使我将主题级别复制因子设置为3,我也能够生成和使用我的主题 .
这是一个好的配置吗?或者你能看到以这种方式设置的任何陷阱吗?
1 回答
创建主题时,您只需要与复制因子一样多的代理 .
我猜你的情况是,你从一个新的集群开始,没有消费者已经连接 . 在这种情况下,
__consumer_offsets
内部主题不存在,因为它仅在首次需要时才创建 . 因此,首先连接消费者一会儿,然后杀死其中一个经纪人 .除此之外,为了消费你只需要1个经纪人,分区的领导者 .