簡體   English   中英

Zookeeper 拒絕來自舊客戶端的 Kafka 連接

[英]Zookeeper refuses Kafka connection from an old client

我有一個在 GCE 上使用 Kubernetes 的集群配置,我有一個用於 zookeeper 的 pod 和其他用於 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)

因為 kafka 維護一個動物園管理員會話,它記住它看到的最后一個 zxid。 所以當zookeeper服務下來又來的時候,zk的zxid從一個較小的值開始。 而ZKserver認為kafka看到了更大的zxid,所以拒絕了。

嘗試重新啟動 kafka。

作為記錄,我遇到了這個問題,我所有的 kafka 都關閉了。
但是,我的 kafka 經理仍在傾聽動物園管理員的聲音。 關閉它解決了問題。

與@GuangshengZuo 的回答有關.... 步驟

  1. 停止任何剩余的 zookeeper 實例 - zookeeper-server-stop.bat
  2. 啟動一個新的zookeeper zookeeper-server-start.bat .\\config\\zookeeper.properties這樣就可以了

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM