码迷,mamicode.com
首页 > 其他好文 > 详细

RabbitMQ BasicGet与BasicConsume的区别

时间:2019-01-04 12:29:01      阅读:527      评论:0      收藏:0      [点我收藏+]

标签:data-   不可   关闭   icc   就是   class   baidu   span   ann   

截取自百度知道,回答者: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方式。

RabbitMQ BasicGet与BasicConsume的区别

标签:data-   不可   关闭   icc   就是   class   baidu   span   ann   

原文地址:https://www.cnblogs.com/SupPilot/p/10218377.html

(1)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!