现在,我们正在AWS EC2服务器中运行kafka,而Zoo门将也在单独的EC2实例上运行。
我们为kafka和动物园管理员创建了一个服务(系统单元),以确保在服务器重新启动时启动它们。
问题是,有时动物园管理员断断续续的启动和卡夫卡经纪人在那个时候被终止。
因此,为了解决这个问题,我们计划在代理端将zookeeper.connection.timeout.ms增加到一些较高的数量,比如10分钟。这样做好吗?
在动物园管理员中是否有增加zookeeper.connection.timeout.ms超时的大小效应?
发布于 2016-09-02 04:12:38
增加zookeeper.connection.timeout.ms可能处理或不处理您手头的问题,但可能需要更长的时间来检测代理软故障。
有几件事你可以做: 1)你必须改变系统,以启动卡夫卡,以延迟10分钟(时间,你想在动物园超时)。2)我们使用HDP集群来自动处理这些场景。
以下是Kafka常见问题的解释:在代理软故障(例如长GC )期间,它关于ZooKeeper的会话可能超时,因此被视为失败。一旦检测到这种情况,Kafka将将它当前承载的所有分区领导迁移到其他副本。一旦代理从软故障中恢复,它只能充当它最初引导的分区的跟随者副本。
要将领导权移回经纪人手中,我们可以在这里使用首选的领导人选举工具。此外,在0.8.2中将添加一个新特性,它定期触发此功能(详见此处)。
若要减少Zookeeper会话到期,可以调优GC或增加代理配置中的zookeeper.session.timeout.ms。
https://cwiki.apache.org/confluence/display/KAFKA/FAQ
希望这能有所帮助
https://stackoverflow.com/questions/38859944
复制相似问题