zookeeper.connection.timeout.ms的最大值

时间:2016-08-09 20:34:45

标签: apache-kafka apache-zookeeper

目前我们在AWS EC2服务器上运行kafka,zookeeper也在不同的EC2实例上运行。

我们已经为kafka和zookeeper创建了一个服务(系统单元),以确保它们在服务器重新启动时启动。

问题是有时候动物园管理员服务员的起步时间有点晚,卡夫卡经纪人到那时候会被终止。

因此,为了解决这个问题,我们计划将zookeeper.connection.timeout.ms增加到10个单位的高数,在经纪方面。这是一个好方法吗?

在zookeeper中增加zookeeper.connection.timeout.ms超时是否有任何大小的影响?

1 个答案:

答案 0 :(得分:3)

增加zookeeper.connection.timeout.ms可能会或可能不会处理您手头的问题,但有可能需要更长的时间来检测代理软故障。

你可以做的事情: 1)您必须更改系统以启动kafka延迟10分钟(您想要放入zookeper超时的时间)。 2)我们正在使用HDP集群,它自动处理这种情况。

以下是Kafka常见问题解答: 在代理软故障期间,例如,长GC,其在ZooKeeper上的会话可能超时,因此被视为失败。在检测到这种情况后,Kafka会将当前托管的所有分区领导迁移到其他副本。一旦代理从软故障中恢复,它就只能作为它最初引导的分区的跟随者副本。

要将领导层移回经纪人,可以在此处使用首选领导者选举工具。此外,在0.8.2中将添加一个新功能,定期触发此功能(详情请参见此处)。

要减少Zookeeper会话过期,请调整GC或增加代理配置中的zookeeper.session.timeout.ms。

https://cwiki.apache.org/confluence/display/KAFKA/FAQ

希望这有帮助