kafka注册zookeeper失败

宁静志远 发表于: 2019-10-21   最后更新时间: 2019-10-21  

集群运行过程中,经常会发现kafka注册zookeeper失败,即zookeeper中/brokers/ids发现少了某个kafka broker:

# kubectl exec zookeeper-0 -- zkCli.sh ls /brokers/ids | tail -1
[0, 2]

曾经发现过的问题是,kafka和zookeeper的连接参数ZOOKEEPER_CONN采用了zookeeper的service地址,连接时可能随机连接某个zookeeper pod,导致连接无法保持,所以当前已经改为:

zookeeper-0.zookeeper-hs.default.svc.cluster.local:2181,zookeeper-1.zookeeper-hs.default.svc.cluster.local:2181,zookeeper-2.zookeeper-hs.default.svc.cluster.local:2181

但仍旧会发生连接断开的问题。当前kafka和zookeeper相关参数如下:

zookeeper:
    tickTime=2000
    initLimit=5
    syncLimit=15
    maxClientCnxns=500
    autopurge.purgeInterval=24
    autopurge.snapRetainCount=6

kafka:
    zookeeper.session.timeout.ms=20000

不知大家有没有遇到过相关问题?

(有一种规避方案是通过kakfa探针检测是否注册到zookeeper,但总是重启kafka broker在生产环境下不太允许,还是需要找一找根本原因)



您需要解锁本帖隐藏内容请: 点击这里
本帖隐藏的内容




上一条: Uncaught exception in kafka-coordinator-heartbeat-thread kafka java.lang.OutOfMemoryError: Java heap space 消费者运行一段时间之后报了这样的错误
下一条: GSSException: Failure unspecified at GSS-API level (Mechanism level: Encryption type AES256 CTS mode with HMAC SHA1-96 is not supported/enabled)

  • 主机之间进行长ping试试啊,看看是否有瞬时的网络不通。

    看着像用的kubernetes安装的kafka,zk与broker中断的时候,kafka的pod是新的还是老的。