我在GCE上使用Kubernetes进行了群集配置,我有一个用于zookeeper和其他用于Kafka的pod;它正常工作,直到Zookeeper崩溃并重新启动,它开始拒绝来自kafka pod的连接:
拒绝客户端
/10.4.4.58:52260
的会话请求zxid 0x1962630
完整的拒绝日志在这里:
2017-08-21 20:05:32,013 [myid:] - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxnFactory@192] - Accepted socket connection from /10.4.4.58:52260
2017-08-21 20:05:32,013 [myid:] - WARN [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:ZooKeeperServer@882] - Connection request from old client /10.4.4.58:52260; will be dropped if server is in r-o mode
2017-08-21 20:05:32,013 [myid:] - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:ZooKeeperServer@901] - Refusing session request for client /10.4.4.58:52260 as it has seen zxid 0x1962630 our last zxid is 0xab client must try another server
2017-08-21 20:05:32,013 [myid:] - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1008] - Closed socket connection for client /10.4.4.58:52260 (no session established for client)
答案 0 :(得分:4)
因为kafka维护了一个zookeeper会话,它会记住它看到的最后一个zxid。因此,当动物园管理员服务下降并再次出现时,zk的zxid从较小的值开始。而ZKserver认为kafka已经看到了更大的zxid,所以它拒绝它。
尝试重新启动kafka。
答案 1 :(得分:0)
出于记录,我遇到了这个问题,我所有的卡夫卡都没电了。
但是,我的卡夫卡经理仍然在听着动物园管理员的讲课。关闭它可以解决问题。
答案 2 :(得分:0)
与@GuangshengZuo ...的回答有关。步骤
zookeeper-server-stop.bat
zookeeper-server-start.bat .\config\zookeeper.properties
可以做到