RabbitMQ BasicGet與BasicConsume的區別


截取自百度知道,回答者:gxt890106 

在RabbitMQ中消費者有2種方式獲取隊列中的消息:

a)  一種是通過basic.consume命令,訂閱某一個隊列中的消息,channel會自動在處理完上一條消息之后,接收下一條消息。(同一個channel消息處理是串行的)。除非關閉channel或者取消訂閱,否則客戶端將會一直接收隊列的消息。

b)  另外一種方式是通過basic.get命令主動獲取隊列中的消息,但是絕對不可以通過循環調用basic.get來代替basic.consume,這是因為basic.get RabbitMQ在實際執行的時候,是首先consume某一個隊列,然后檢索第一條消息,然后再取消訂閱。如果是高吞吐率的消費者,最好還是建議使用basic.consume。

 

簡單總結一下就是說:

consume是只要隊列里面還有消息就一直取。

get是只取了隊列里面的第一條消息。

因為get開銷大,如果需要從一個隊列取消息的話,首選consume方式,慎用循環get方式。


免責聲明!

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



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