負載均衡
更新時間 2023-05-13 17:26:43
最近更新時間: 2023-05-13 17:26:43
分享文章
Kafka的消費者示例代碼片段如下:

每個 Consumer Group 可以包含多個消費實例,即可以啟動多個 Kafka Consumer,并把參數 group.id 設置成相同的值。屬于同一個 Consumer Group 的消費實例會負載消費訂閱的 Topic。
舉例:Consumer Group A 訂閱了 Topic A,并開啟三個消費實例 C1、C2、C3,則發送到 Topic A 的每條消息最終只會傳給 C1、C2、C3 的某一個。Kafka 默認會均勻地把消息傳給各個消息實例,以做到消費負載均衡。
Kafka 負載消費的內部原理是,把訂閱的 Topic 的分區,平均分配給各個消費實例。因此,消費實例的個數不要大于分區的數量,否則會有實例分配不到任何分區而處于空跑狀態。這個負載均衡發生的時間,除了第一次啟動上線之外,后續消費實例發生重啟、增加、減少等變更時,都會觸發一次負載均衡。
消息隊列 Kafka 的每個 Topic 的分區數量默認是 16 個,已經足夠滿足大部分場景的需求,且云上服務會根據容量調整分區數。