現在我們已經知道,當某些情況發生變化時,Kafka會自動重新分配 Partition的Consumer,這個過程被稱為 Rebalance。本文以我們的Line Bot專案為例,以一個簡單的情境,說明當Consumer Instance變動時,Rebalance的運作過程。
假設情境如下:
1.訊息的傳送及接收
2.訊息與Topic分類
飲食紀錄
: 關於每日三餐吃的食物內容, topic 為 diet
訓練記錄
: 關於重量訓練的動作和組次數紀錄, topic 為 training
3.Consumer
以上用我們專案可能遇到的情境,希望能幫助讀者對Partition分配的機制更清楚。
Rebalance確保每個Partition的資料都能被有效消費,並且當Consumer數量與Partition數量不同時,也能自動調整Consumer的工作負載。
在接下來的文章中,也會以我們專案的需要為出發點,介紹Kafka在部署時會需要的設定。