kafka學習總結016 --- consumer配置參數session.timeout.ms和heartbeat.interval.ms


前面說過了consumer心跳機制:consumer定期向coordinator發送心跳請求,以表明自己還在線;如果session.timeout.ms內未發送請求,coordinator認為其不可用,然后觸發rebalance

session.timeout.ms:coordinator感知consumer崩潰所需時間,默認10秒

heartbeat.interval.ms:consumer發送心跳請求間隔,默認3秒

示例:topic1有2個分區,3個副本;三個消費者屬於同一個組,並訂閱該topic;

可以看到前兩個消費者分別消費0號分區和1號分區,第三個消費者閑置;所以實際應用中,組內消費者的個數不要大於分區數,否則會造成資源浪費。

 

 

 

 

把consumer3停掉,10秒后能夠看到consumer1和consumer2,由於rebalance心跳失敗,並且重新加入組

 

 

使用建議:

1、session.timeout.ms一定要大於heartbeat.interval.ms,否則消費者組會一直處於rebalance狀態

2、session.timeout.ms最好幾倍於heartbeat.interval.ms;這是因為如果因為某一時間段的網絡延遲導致coordinator未感知到心跳請求,session.timeout.ms和heartbeat.interval.ms接近的話,會導致consumer組rebalance過於頻繁,影響消費性能

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM