不洁的关机打破了Kafka集群

时间:2016-10-25 20:40:21

标签: apache-kafka

我的团队观察到,如果经纪人流程不洁,那么它将阻止生产者向kafka主题发送消息。

以下是重现问题的方法: 1)用三个经纪人(A,B和C)创建一个Kafka 0.10。 2)使用replication_factor = 2创建主题 3)设置生产者发送消息" acks = all"意味着必须先创建所有副本才能继续下一条消息。 3)强制IEM(IBM Endpoint Manager)向代理A发送补丁并强制服务器在安装补丁后重启。

注意:min.insync.replicas = 1

结果: - 代理重新启动后,生产者无法向kafka主题发送消息,并返回加入群集并显示以下错误消息。 [2016-09-28 09:32:41,823] WARN在获取具有相关ID 0的元数据时出错:{logstash = LEADER_NOT_AVAILABLE}(org.apache.kafka.clients.NetworkClient)

我们怀疑对于我们的kafka环境,replication_factor(2)的数量是不够的,但实际上需要解释当代理面临不干净关闭时会发生什么。设置具有2个代理和replication_factor = 1的群集时发生同样的问题。

我用来恢复服务的解决方法是清理kafka主题日志文件和zookeeper数据(rmr / brokers / topics / XXX和rmr / consumers / XXX)。

谢谢, Anukool

0 个答案:

没有答案