面对" leader = -1"我怎么能这样做?卡夫卡的错误

时间:2015-12-09 08:15:59

标签: apache-kafka

我设置了一个Kafka应用程序,它有2个代理并创建一个有3个分区的主题,复制因子= 1。 然后我使用生产者进程发送数据。当生产者运行时,我杀了3个经纪人中的一个,生产者进程发出以下消息:

kafka.common.FailedToSendMessageException:尝试3次后无法发送消息。

如果允许数据丢失,我该怎么做才能使生产者进程自动恢复。 我认为最好的解决方案是将已删除代理中的分区移动到另外2个代理。 我该怎么办? 如果不是,它只是意味着面对leader = -1时无法恢复吗?

请注意: 在我的情况下,重复因子设置为1以降低带宽利用率。

1 个答案:

答案 0 :(得分:4)

http://kafka.apache.org/documentation.html

  

对于复制因子为N的主题,我们最多可以容忍N-1   服务器故障,不会丢失任何提交给日志的消息。

因此,如果您想要自动故障转移 - 增加复制因子。