比方說,我有2個卡夫卡主題登錄和註銷通過用戶名並具有分區的相等數目的分割。 如果我運行一個消費者組,消費兩個主題的兩個消費者,我可以確定每個用戶的登錄和註銷事件將由同一個消費者處理嗎?如果消費多個主題,卡夫卡消費者是否處理相同的主題密鑰?
0
A
回答
0
我不這麼認爲,至少使用缺省配置...讓我解釋一下更好...... 假設你有2個分區對每個話題如此: 登錄主題有分區0和1(姑且稱之爲LIN0, lin1) 註銷主題有分區0和1(我們稱它們爲lout0,lout1)
我們將兩個消費者放在同一個消費者組中,它們被稱爲c1和c2。 對c1使用subscribe()方法可能會發生,它會得到lin0和lout1,而c2可能會得到lin1和lout0。 當生產者寫入用戶名= u1的登錄名(例如)時,它可以在lin0中輸入與用戶名u1登錄相關的消息,並且該消息將被c1消耗。在註銷時可能會發生這樣的情況,生產者會將用戶名= u1的消息寫入到由c2處理的lout0! 因此登錄由c1處理,但通過c2註銷!這就是你想要的當然不想要! 由於subscribe()方法處理自動分區分配和默認分區程序,生產者以循環方式向主題分區分發消息,因此發生此情況。
關於潛在的解決方案可能是編寫一個自定義的分區程序在生產者上使用,以便根據一些基於用戶名的標準,u1將始終寫在分區0的兩個主題(so lin0和lout0)。 然後在消費者端使用assign(),因此要求特定的分區,例如c1可以完全從lin0和lout0請求消費者。 當然,您失去了訂閱提供的重新平衡功能。
相關問題
- 1. 卡夫卡多個主題消費
- 2. 同時作爲卡夫卡消費者使用多個主題
- 3. 春季卡夫卡 - 所有主題到同一個消費者
- 4. 卡夫卡消費者爲多個主題
- 5. 卡夫卡消費者 - 消費者流程和主題分區與主題分區的關係如何?
- 6. 卡夫卡中的同一主題的消費者數量是否有限制?
- 7. 卡夫卡消費者不消費
- 8. 問題在消費者卡夫卡
- 9. 卡夫卡MirrorMaker的消費者不取出由主題
- 10. 多個消費羣體消費者如何在卡夫卡的同一主題上跨越分區工作?
- 11. 卡夫卡消費者無法從卡夫卡的主題訂閱
- 12. 卡夫卡 - 主題&分區和消費者
- 13. 卡夫卡消費者 - 主題(S)具有較高優先級
- 14. 卡夫卡消費者動態檢測主題添加
- 15. 卡夫卡gruop消費者
- 16. 卡夫卡總是一個消費者在一個組中消費主題消息
- 17. 卡夫卡消費者可以並行處理多條消息
- 18. 消費消費使用卡夫卡消費者 - Java
- 19. 如何從生產者消費卡夫卡的消費者?
- 20. 卡夫卡用於實時數據處理多個消費者
- 21. 卡夫卡消費者同步行爲
- 22. 卡夫卡消費者不是從
- 23. 卡夫卡消費者如何選擇接下來輪詢哪個主題?
- 24. 卡夫卡10.2新消費者與舊消費者
- 25. 多的消費者從同一主題的消費
- 26. 卡夫卡消費者/生產者API
- 27. 如何暫停卡夫卡消費者?
- 28. 爲什麼卡夫卡消費者API不獲取由一個主題
- 29. Spark Streaming中的卡夫卡消費者
- 30. 雲中的卡夫卡消費者