Zookeeper 拒绝来自旧客户端的 Kafka 连接
Zookeeper refuses Kafka connection from an old client
我有一个在 GCE 上使用 Kubernetes 的集群配置,我有一个用于 zookeeper 的 pod 和另一个用于 Kafka 的 pod;它一直正常工作,直到 Zookeeper 崩溃并重新启动,并且它开始拒绝来自 kafka pod 的连接:
Refusing session request for client /10.4.4.58:52260
as it has seen
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)
因为 kafka 维护一个 zookeeper 会话,它记住它看到的最后一个 zxid。所以当 zookeeper 服务宕机再启动时,zk 的 zxid 从一个较小的值开始。而ZKserver认为kafka看到了一个更大的zxid,所以拒绝了。
重启kafka试试
郑重声明,我遇到了这个问题,我所有的 kafka 都关闭了。
但是,我的 kafka-manager 仍然在听动物园管理员的消息。关闭它解决了问题。
相关@GuangshengZuo 的回答....步骤
- 停止任何残留的 zookeeper 实例 -
zookeeper-server-stop.bat
- 开始新的动物园管理员-
zookeeper-server-start.bat .\config\zookeeper.properties
这样就可以了
我有一个在 GCE 上使用 Kubernetes 的集群配置,我有一个用于 zookeeper 的 pod 和另一个用于 Kafka 的 pod;它一直正常工作,直到 Zookeeper 崩溃并重新启动,并且它开始拒绝来自 kafka pod 的连接:
Refusing session request for client
/10.4.4.58:52260
as it has seenzxid 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)
因为 kafka 维护一个 zookeeper 会话,它记住它看到的最后一个 zxid。所以当 zookeeper 服务宕机再启动时,zk 的 zxid 从一个较小的值开始。而ZKserver认为kafka看到了一个更大的zxid,所以拒绝了。
重启kafka试试
郑重声明,我遇到了这个问题,我所有的 kafka 都关闭了。
但是,我的 kafka-manager 仍然在听动物园管理员的消息。关闭它解决了问题。
相关@GuangshengZuo 的回答....步骤
- 停止任何残留的 zookeeper 实例 -
zookeeper-server-stop.bat
- 开始新的动物园管理员-
zookeeper-server-start.bat .\config\zookeeper.properties
这样就可以了