我的 Kafka 旅程 - Consumer( 二 )


消費者組是邏輯上的一個消費者,是由一個或多個消費者實例組成,具有可擴展性和可容錯性,消費者組內的消費者共享一個GroupId組成;組內每個消費者負責消費不同分區數據,并行消費數據;當組內一個消費者掛了之后 , 其它消費者要自動承擔它的消費任務 - 組內再平衡 。
觸發再平衡消費成員與Broker分區保持心跳連接,或者消費成員處理消息時間過長,會被認為此消費者需要被移除,觸發組內消費成員任務再分配 。以下配置任其一條件觸發再平衡:

  1. # 心跳連接超時的 移除條件(建議45秒)

  2. session.timeout.ms

  3. # 消息處理超時的 移除條件(建議5分鐘)

  4. max.poll.interval.ms

  5.  
再平衡策略
  1. # 再平衡策略配置項(可多策略組合)

  2. partition.assignment.strategy = Range | RoundRobin | Sticky | CooperativeSticky

  • Range:單個Topic內的重新平均分配
  • RoundRobin:所有Topic的全部消費者 , 一起重新分配
  • Sticky:一次小范圍重新分配;僅調整需要的,避免大規模重新分配
  • CooperativeSticky:可多次小范圍重新調整,直至最終效果
提升吞吐量
  • 增加分區,增加消費者,兩者一一對應起來,并行消費
  • 調整一次最多拉取的消息條數(500條)
  • 調整單次抓取的數據最大容量(50M)
【我的 Kafka 旅程 - Consumer】

推薦閱讀