我可以爲不同類型的更新創建名爲update_i的主題,並使用user_id在Kafka MQ中對它們進行分區?我已經通過confluent.io通過這篇文章:https://www.confluent.io/blog/how-to-choose-the-number-of-topicspartitions-in-a-kafka-cluster/。另外,我知道我無法用動態數量的分區創建主題。這兩個事實(卡夫卡分區的帖子和靜態數量)。什麼是交付機制的選擇?卡夫卡用作新聞傳遞中的傳遞機制
0
A
回答
0
作爲一個可能的解決方案,我建議創建多個分區,然後建立生產者使用以下規則
user_id mod <number_of_partitions>
這將讓你保持特定的user_id消息爲了選擇分區。
然後,如果您需要讓消費者只處理特定user_id的消息,則可以編寫一個(低級別)消費者,它將讀取特定分區並僅處理爲特定客戶發送的消息並忽略所有其他消息。
1
我可以爲不同類型的更新創建名爲update_i的主題,並使用Kafka MQ中的user_id對它們進行分區嗎?
如果我理解正確,答案是肯定的。
你需要簡而言之做什麼:
主題配置:確定需要的分區你的主題(S)。通常,根據(1)輸入數據的預期比例/容量(即縮放的寫入側)和/或(2)消耗用於處理的消息所需的並行性來確定分區的數量,縮放的一面。詳情請參閱https://www.confluent.io/blog/how-to-choose-the-number-of-topicspartitions-in-a-kafka-cluster/。
給這些卡夫卡主題(也就是「卡夫卡製片人」一側)寫信息:在卡夫卡,信息是鍵值對。在你的情況下,你可以設置消息密鑰爲
user_id
。然後,當使用Kafka默認的「分區程序」時,同一個消息鍵(這裏是:user_id
)的消息會自動發送到同一個分區 - 這是您想要實現的。
相關問題
- 1. 簡單的卡夫卡消費者消息傳遞重複
- 2. 如何將記錄從卡夫卡傳遞給方法?
- 3. 如何將參數傳遞給卡夫卡控制檯消費者
- 4. 用卡夫卡實施傳奇
- 5. 參數傳遞到摩卡
- 6. 斯卡拉傳遞變量
- 7. 通過AJAX傳遞信用卡信息
- 8. 卡夫卡分區和消費者羣至少一次消息傳遞
- 9. 傳遞類之間的數組...卡住
- 10. 卡夫卡,新的存儲
- 11. 卡夫卡定製消費者閱讀傳入記錄
- 12. 斯卡拉傳遞函數作爲參數傳遞給另一個函數
- 13. 卡夫卡的retention.ms沒有被卡夫卡0.10.2強制執行?
- 14. 卡夫卡製作人消息流
- 15. 傳遞參數在帕斯卡定義
- 16. Unit.js,摩卡example.js失敗0傳遞
- 17. 傳遞序號[T]在斯卡拉
- 18. 將值傳遞給選項卡片段
- 19. 在選項卡之間傳遞值
- 20. 斯卡拉匹配變量傳遞
- 21. 參數傳遞給在斯卡拉
- 22. 從資產傳遞PDF到SD卡
- 23. url參數傳遞機制
- 24. 阿卡流+阿卡的Http傳遞參數
- 25. 傳遞「控制」作爲參數vs傳遞控制的ID
- 26. 參數傳遞機制中的R
- 27. 卡夫卡操作中的延遲
- 28. 斯卡拉/阿卡 - 通過行爲堆棧傳遞消息?
- 29. 將數據從選項卡1傳遞到選項卡2
- 30. 通過新選項卡傳遞額外的參數Extjs4
爲什麼要按用戶標識進行分區?你想「訂閱」還是僅處理來自某些用戶而不是其他用戶的消息?或者你正在考慮將user_id作爲目標用戶ID? –