在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的区别相关推荐

  1. java 队列和rabbitmq_java – 如何在不使消息出列的情况下浏览rabbitmq中的队列

    我正在尝试获取具有特定相关ID的消息,如rabbitmq docs中所述.但是我看到无关的消息被出列了.我不希望它发生.在得到消息后,我怎么能告诉rabbitmq没有出队,并且知道这不是我想要的那个. ...

  2. RabbitMQ中的cluster、mirrored queue,以及 warrens机制、RAM node、disk node及vhost介绍

    1.RAM node和disk node的区别? RAM node仅将fabric(即queue.exchange和binding等RabbitMQ基础构件)相关元数据保存到内存中,但disk nod ...

  3. Rabbitmq中常用的五种连接方式

    目录 前提准备 方式一:  Hello World 服务端(provider)代码 客户端(customer)代码 方式二: work(以下方式都是通过工具类来创建connection对象) 有两种方 ...

  4. 深入理解RabbitMQ中的prefetch_count参数

    目录 prefetch_count参数的含义 RabbitMQ客户端中prefetch_count源码跟踪 prefetch_count参数使用 prefetch_count参数最佳实践 小结 pre ...

  5. python中break和continue的区别

    python中break和continue的区别 break 结束for 或者while 循环  后面还没循环到的 不再循环 continue 当满足某种条件时结束当前值的循环 后面没有循环的继续循环 ...

  6. java中separator_java - File.separator和路径中的斜杠之间的区别

    java - File.separator和路径中的斜杠之间的区别 在Java Path-String中使用/和普通的File.separator有什么区别? 与双反斜杠相比,/平台独立似乎不是原因, ...

  7. PHP中self和static的区别,php中self与static的区别

    原文链接,猛击这里. php中self与static的区别 通过一些示例,我们可以很容易看出self和static的区别.假定我们有class Car – 它有两个方法,model和getModel. ...

  8. php 抽象类 接口 区别,PHP中抽象类、接口的区别与选择分析

    本文实例分析了PHP中抽象类.接口的区别与选择.分享给大家供大家参考,具体如下: 区别: 1.对接口的使用是通过关键字implements.对抽象类的使用是通过关键字extends.当然接口也可以通过 ...

  9. php $this self,php中self与$this的区别

    学习php中self与$this的区别. 先来看下parent与self的例子: /* * parent与self的区别 * by www.jbxue.com */ class A{ function ...

最新文章

  1. UI培训分享:如何成为一名优秀的UI设计师
  2. 微软Google思科宣布将资助OpenSSL等开源项目
  3. JavaScript 数据去重的常用几种方法
  4. 数据增量更新定义_封面数据 | 爬虫技术与应用
  5. 大型分布式网站架构设计与实践 第一章《面向服务的体系架构(SOA)》
  6. spring中AOP动态代理的两种方式
  7. SQL Server 取日期时间部分
  8. 北理计算机网络实验汇编,北理计算机与网络实验(II)(汇编语言实验4).docx
  9. Cacti添加IO模板并监控磁盘IO
  10. xUtils项目框架
  11. 《Spring Boot官方指南》28.安全
  12. python魔法属性_python魔法方法-属性转换和类的表示详解
  13. WIN2008R2激活工具
  14. 最新楚琳web打印控件下载 - 2019适配所有浏览器
  15. aip格式转化为pdf,catia的三维图转PDF格式咋弄
  16. 生成1-100随机数并进行猜测
  17. 苹果市场金融类app上架ios1.2 ,5.2.1或3.21被拒原因解析
  18. intel更新13代桌面处理器产品线,更多核心更贵价格
  19. 传统企业如何做数字化转型?弄懂这3大底层逻辑你就懂了
  20. 疲惫的 618,很难再激起年轻人的多巴胺?

热门文章

  1. 软件测试报告doc,软件测试报告.doc
  2. BP(反向传播)神经网络
  3. 教你如何处理Zabbix添加key总是not supported
  4. 全局光照---光线跟踪方法
  5. Linux学习总结(四十四)lnmp之php-fpm相关配置
  6. 第一:Python+Allure运行报错AttributeError: module ‘allure‘ has no attribute ‘severity_level‘
  7. python接口自动化(三十六)-封装与调用--流程类接口关联续集(详解)
  8. python接口自动化(十一)--发送post【data】(详解)
  9. opencvpython 段力辉是哪本书_OpenCV基础 | 1.python3.6+OpenCV4.0环境配置
  10. 计算机教学教育评价和实践手册,教育教学实践评价手册(听课记录表三)