kafka如何防止key相同的消息並發消費


最開始,我認為只用把消費者設置為單線程消費,就可以避免並發問題。
因為同一個key,分區一定相同,那么就只會被同一個消費者消費,消費者又是單線程,這樣就避免了並發問題

后面發現,上述的方式沒有辦法處理rebalace的情況;比如一個消費組最開始只有2個消費者,topic有6個分區,key為1的message在分區3,當再增加一個消費者時,這時會發生rebalance,導致相同key的message,在消費者增加前后,分區不一致,這時可能會出現並發問題;

所以最終方案,還是需要分布式鎖來避免並發問題


免責聲明!

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



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