rabbitmq多消費者


rabbitmq多消費者處理

當rabbitmq擁有多個消費者時,隊列收到的消息將以輪詢(round-robin)的分發方式發送給消費者。每條消息只會發送給訂閱列表里的一個消費者。這種方式非常適合擴展,而且它是專門為並發程序設計的。如果現在負載加重,那么只需創建更多的消費者來消費處理消息即可

 

缺點:默認情況下,如果有n個消費者,那么rabbitmq會將第m條消息分發給第m%n(取余的方式)個消費者,rabbitmq不管消費者是否消費並已經確認(Basic.Ack)了消息。如果某些消費者任務繁重,來不及消費那么多消息,而某些其他消費者由於某些原因很快處理完了所分配到的消息,進而空閑,這樣就會造成整體應用吞吐量的下降。

解決方案:可以使用rabbitmq的channel.basicQos限制信道上消費者所能保持的最大未確認消息的數


免責聲明!

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



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