我是卡夫卡的新人。我的要求是,我有兩個分區,例如Partition-0和Partition-1,我有值列表也包含KEY值。我想根據我的密鑰存儲數據,如鍵1將進入分區0,鍵2將進入分區1。使用舊的API有辦法實現,就像我們需要實現分區界面一樣,但我怎樣才能用新的API來實現。謝謝卡夫卡:如何在卡夫卡實現循環分區
1
A
回答
0
與新的生產者,你也可以實現Partitioner
接口(https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/producer/Partitioner.java)來實現循環分配。
可以使用DefaultPartitioner
參考 - https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/producer/internals/DefaultPartitioner.java
0
您可以通過重寫卡夫卡生產的default partitioner產生卡夫卡輪循方式。
僞實施
class RRPartitioner():
def __init__():
# Using topic metadata get total number of partitions
self.total_partitions = client[topic].get_number_partitions()
self.part_offset = 0
def partitioner(self, key, msg):
if self.part_offset > self.total_partitions:
self.part_offset = 0
return self.part_offset
else:
self.part_offset += 1
return self.part_offset
上面的實現它的純循環,如果你想根據鍵進行排序的消息,並有循環,你將不得不做更多的自定義分區。
0
如果你想循環機制的行爲,只是在寫給Producer的時候不要傳遞密鑰,DefaultPartitioner
會爲你做這項工作。您不需要編寫自定義實現。從的javadoc:
/**
* The default partitioning strategy:
* <ul>
* <li>If a partition is specified in the record, use it
* <li>If no partition is specified but a key is present choose a partition based on a hash of the key
* <li>If no partition or key is present choose a partition in a round-robin fashion
*/
相關問題
- 1. 春季卡夫卡分區
- 2. 如何在卡夫卡2.8
- 3. 春季卡夫卡表現vs本地卡夫卡api
- 4. 「爲」卡夫卡KStreams循環支持
- 5. UnknownCodecException卡夫卡
- 6. 卡夫卡
- 7. 如何從卡夫卡用卡夫卡流通過間隔
- 8. 卡夫卡 - 動態/任意分區
- 9. 卡夫卡流:多主題分區
- 10. 卡夫卡 - 檢查每一個分區
- 11. 卡夫卡消費羣體和分區
- 12. 阿帕奇卡夫卡 - 分區
- 13. 計算卡夫卡主題分區
- 14. 卡夫卡主題分區火花流
- 15. 的NodeJS和卡夫卡鍵分區
- 16. 卡夫卡多分區訂購
- 17. 卡夫卡的Zoopekeeper實例
- 18. 卡夫卡0.8全部好&岩石! ....卡夫卡0.7無法實現它
- 19. Logstash如何比卡夫卡
- 20. 卡夫卡與斯卡拉
- 21. 卡夫卡Kubernetes/Minikube
- 22. 卡夫卡的retention.ms沒有被卡夫卡0.10.2強制執行?
- 23. 卡夫卡連接或卡夫卡客戶
- 24. 卡夫卡流和卡夫卡表一對多關係加入
- 25. 阿帕奇頂點 - 卡夫卡0.9安全卡夫卡主題
- 26. 卡夫卡0.9:消費從最早的卡夫卡偏移
- 27. 卡夫卡領導人選舉造成卡夫卡流崩潰
- 28. 彈簧卡夫卡例如
- 29. 如何使卡夫卡源重新連接時,卡夫卡重新啓動
- 30. 如何從卡夫卡連接器獲得卡夫卡引導配置設置
這是最簡單的解決辦法,但如果添加在運行時的分區,這是一個完全有效的情況下 – serejja
True..you將不得不重新啓動定期生產者或輪詢元數據將無法正常工作變化。胸圍大多數現有的鍵控生產商將有相同的問題IIRC。 –