Kafka分區策略
Kafka分區策略
所謂分區策略是決定生產者將消息發送到哪個分區的演算法。Kafka 為我們提供了默認的分區策略,同時它也支援你自定義分區策略。
常見的分區策略包含以下幾種:輪詢策略、隨機策略 、按消息鍵保序策略
輪詢策略
將消息順序分配到各個分區中,假設一個主題下有三個分區,第一條消息將被發送到分區0,第二條消息被發送到分區1,第三條消息被發送到分區2,以此類推,第四條消息將被發送到分區0。如下圖所示

輪詢策略有非常優秀的負載均衡表現,它總是能保證消息最大限度地被平均分配到所有分區上,故默認情況下它是最合理的分區策略,也是我們最常用的分區策略之一
隨機策略
將消息隨機地放到任意一個分區上,本質上看隨機策略也是力求將數據均勻地打散到各個分區,但從實際表現來看,它要遜於輪詢策略,所以如果追求數據的均勻分布,還是使用輪詢策略比較好。事實上,隨機策略是老版本生產者使用的分區策略,在新版本中已經改為輪詢了。
按消息鍵保序策略
Kafka允許為每條消息創建消息鍵,稱為Key,每個Key可以代表具體的業務含義,如業務ID,用戶ID等。一旦消息被定義了 Key,那麼你就可以保證同一個 Key 的所有消息都進入到相同的分區裡面,由於每個分區下的消息處理都是有順序的,故這個策略被稱為按消息鍵保序策略,如下圖所示。



