最開始,我認為只用把消費者設置為單線程消費,就可以避免並發問題。
因為同一個key,分區一定相同,那么就只會被同一個消費者消費,消費者又是單線程,這樣就避免了並發問題
后面發現,上述的方式沒有辦法處理rebalace的情況;比如一個消費組最開始只有2個消費者,topic有6個分區,key為1的message在分區3,當再增加一個消費者時,這時會發生rebalance,導致相同key的message,在消費者增加前后,分區不一致,這時可能會出現並發問題;
所以最終方案,還是需要分布式鎖來避免並發問題
