RabbitMQ BasicGet与BasicConsume的区别

Posted suppilot

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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方式。

以上是关于RabbitMQ BasicGet与BasicConsume的区别的主要内容,如果未能解决你的问题,请参考以下文章

RabbitMQ客户端开发向导

RabbitMQ客户端开发向导

RabbitMQ 部署及配置详解 (单机)

5.RabbitMQ 客户端控制消息

消息中间件系列二:RabbitMQ入门(基本概念RabbitMQ的安装和运行)

RabbitMQ学习系列: RabbitMQ安装与配置