【问题标题】:Zookeeper refuses Kafka connection from an old clientZookeeper 拒绝来自旧客户端的 Kafka 连接
【发布时间】:2018-01-29 23:47:58
【问题描述】:

我有一个在 GCE 上使用 Kubernetes 的集群配置,我有一个用于 zookeeper 的 pod,还有一个用于 Kafka;它一直正常工作,直到 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)

【问题讨论】:

    标签: apache-kafka kubernetes apache-zookeeper


    【解决方案1】:

    因为 kafka 维护一个 zookeeper 会话,它会记住它看到的最后一个 zxid。所以当zookeeper sevice下去又来的时候,zk的zxid从一个较小的值开始。并且 ZKserver 认为 kafka 看到了更大的 zxid,所以它拒绝了它。

    尝试重启kafka。

    【讨论】:

      【解决方案2】:

      为了记录,我遇到了这个问题,我所有的卡夫卡都关闭了。
      但是,我的 kafka 经理仍然起床并听取动物园管理员的意见。将其关闭即可解决问题。

      【讨论】:

      • 你是如何关闭管理器的?关闭 kafka 服务器似乎不起作用
      【解决方案3】:

      与@GuangshengZuo的回答有关....步骤

      1. 停止任何剩余的 zookeeper 实例 - zookeeper-server-stop.bat
      2. 开始一个新的动物园管理员-zookeeper-server-start.bat .\config\zookeeper.properties 这样就可以了

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-02-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-24
        • 1970-01-01
        • 2016-04-22
        • 2016-09-15
        相关资源
        最近更新 更多