我已閱讀其他線程,並通過使用新的組ID識別問題,但是我想了解可能導致此問題的原因。消費者卡在重新加入
我有一個主題與16個分區,我已經設置session.timeout.ms = 30000和max.poll.interval.ms = 30000000。
我運行我的程序,並按ctrl + c它,所以它沒有正確關閉。我猜,16次之後,我陷入了這個重新加入的問題。 session.timeout.ms是心跳超時,所以30秒後它應該踢我的消費者權利,我的分區應該「釋放」權利?還是隻聽我的max.poll.interval.ms?
編輯:我仍然間歇地得到這個錯誤,當它發生時,我必須重新啓動我的所有消費者。即使我的消費者運行良好,然後他們開始都陷入重新加入的狀態(沒有消費者被添加/刪除),這種情況也會發生。下面是當我嘗試當它停留在該國一個新的消費後連接到它的錯誤日誌:
2017-06-29 17:28:16,215 DEBUG [AbstractCoordinator] - [scheduler-1] - Sending JoinGroup ((type: JoinGroupRequest, groupId=ingestion-matching-kafka-consumer-group-dev1, sessionTimeout=30000, rebalanceTimeout=43200000, memberId=, protocolType=consumer, groupProtocols=org[email protected]b45e5583)) to coordinator kafka04-prod01.messagehub.services.us-south.bluemix.net:9093 (id: 2147483644 rack: null)
2017-06-29 17:37:21,261 DEBUG [NetworkClient] - [scheduler-1] - Node 2147483644 disconnected.
2017-06-29 17:37:21,263 DEBUG [ConsumerNetworkClient] - [scheduler-1] - Cancelled JOIN_GROUP request {api_key=11,api_version=1,correlation_id=19,client_id=ingestion-matching-kafka-consumer-dev1} with correlation id 19 due to node 2147483644 being disconnected
這些都是我認爲相關的第一個和最後的消息。以下是我設定的相關超時時間:
session.timeout.ms=30000
max.poll.interval.ms=43200000
request.timeout.ms=43205000 # the docs said to keep this higher than max.poll.interval.ms
enable.auto.commit=false
我應該設置heartbeat.interval.ms嗎?這是心跳在一些後臺線程中自動發送給經紀人的時間間隔(我閱讀過文檔,但出於某種原因,我無法將我的頭圍繞在它周圍)?
恩,謝謝澄清。如果我等待的時間超過30秒(幾乎至少10分鐘才能重新加入),你知道還有什麼其他超時嗎? – kyl
在這種情況下,我建議你打開log4j中的調試或跟蹤,並檢查客戶端在做什麼 –
嗨,我已經更新了我的原始問題與日誌和更多信息,如果你有任何意見/見解,將非常讚賞 – kyl