Kafka 生產者分區策略


分區策略

1)分區的原因

(1)方便在集群中擴展,每個 Partition 可以通過調整以適應它所在的機器,而一個 topic

又可以有多個 Partition 組成,因此整個集群就可以適應任意大小的數據了;

(2)可以提高並發,因為可以以 Partition 為單位讀寫了。

 

 

2)分區的原則
我們需要將 producer 發送的數據封裝成一個 ProducerRecord 對象。

 

發送消息有幾種重載方法: 

 

 

(1)指明 partition 的情況下,直接將指明的值直接作為 partiton 值;

(2)沒有指明 partition 值但有 key 的情況下,將 key 的 hash 值與 topic 的 partition 數進行取余得到 partition 值;

(3)既沒有 partition 值又沒有 key 值的情況下,第一次調用時(第一條消息發往那個分區)隨機生成一個整數( 后 面每次調用在這個整數上自增),將這個值與 topic 可用的 partition 總數取余得到 partition 值,也就是常說的 round-robin 算法。

 

 


免責聲明!

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



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