簡體   English   中英

Kubernetes 基礎設施上的選擇性 Kafka 再平衡

[英]Selective Kafka rebalancing on Kubernetes infrastructure

我在 dockerized Kubernetes 基礎設施上運行一個帶有一組消費者的 kafka 集群。 典型的工作流程是,當(消費者組的)某個消費者死亡時,將觸發重新平衡過程,並執行將分區重新分配給一組消費者(不包括失敗的消費者)。

一段時間后,Kubernetes controller 將重新創建/重新啟動失敗/死亡的消費者實例,並再次執行新的重新平衡。

有沒有辦法控制第一個重新平衡過程(當消費者死亡時),例如等待幾秒鍾而不重新平衡,直到失敗的消費者返回,或者直到觸發超時。 如果消費者返回,繼續消費基於舊的重新平衡分配(即,沒有新的重新平衡)?

有 3 個參數基於 group coordinator 決定消費者是死是活

session.timeout.ms
max.poll.interval.ms
heartbeat.interval.ms

您可以通過調整以上三個參數和一個拇指規則來避免不必要的重新平衡:使用單獨的線程在池循環中調用第 3 方 api。

調整以上三個參數需要 ans。 以下問題

  1. max.poll.records 的大小是多少
  2. 平均多少申請處理 1 條記錄所需的時間[消息]
  3. 平均多少申請處理完整批次所需的時間

請參考 Kafka 消費者配置

https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html

您還可以探索合作再平衡

https://www.confluent.io/blog/incremental-cooperative-rebalancing-in-kafka/

暫無
暫無

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

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