ZooKeeper网络质量差
问题现象描述
若ZooKeeper的leader节点的网卡出现网络拥塞,会导致其他follower节点与leader节点之间同步数据超时,从而被leader节点踢出,当被踢出的节点超过集群的一半以上时,会导致所有zkServer无法提供服务,可通过
下gcache.log日志文件判断。在follower节点上可看到如下日志。在leader节点上可看到如下日志。
根本原因分析
该问题由于网络拥塞导致ZooKeeper Server之间同步数据的时延太高,事务超时。若leader服务器在syncLimit时间内无法获取到follower的心跳检测,则follower节点发生了网络IO错误,主动与leader断开连接,并主动shutdown导致。属于ZooKeeper原生处理。
解决方案
- 在zoo.cfg配置文件中,适当增大syncTimeout(默认值为5 * tickTime)和InitTimeout(默认为10 * tickTime)两个参数。
- ZooKeeper Server在部署过程中与业务层网络分离部署,避免业务层大流量导致控制网络拥塞。
父主题: ZooKeeper故障