如何选择RabbitMQ的消息保存方式?
来源:互联网 发布:linux pyqt4 eric6 编辑:程序博客网 时间:2024/06/05 03:02
RabbitMQ对于queue中的message的保存方式有两种方式:disc和ram。如果采用disc,则需要对exchange/queue/delivery mode都要设置成durable模式。Disc方式的好处是当RabbitMQ失效了,message仍然可以在重启之后恢复。而使用ram方式,RabbitMQ处理message的效率要高很多,ram和disc两种方式的效率比大概是3:1。所以如果在有其它HA手段保障的情况下,选用ram方式是可以提高消息队列的工作效率的。
如果使用ram方式,RabbitMQ能够承载的访问量则取决于可用的内存数了。RabbitMQ使用两个参数来限制使用系统的内存,避免系统被自己独占。
[{rabbit, [{vm_memory_high_watermark_paging_ratio, 0.75}, {vm_memory_high_watermark, 0.4}]}].
vm_memory_high_watermark:表示RabbitMQ使用内存的上限为系统内存的40%。也可以通过absolute参数制定具体可用的内存数。当RabbitMQ使用内存超过这个限制时,RabbitMQ 将对消息的发布者进行限流,直到内存占用回到正常值以内。
Vm_memory_high_watermark_paging_ratio:表示当RabbitMQ达到0.4*0.75=30%,系统将对queue中的内容启用paging机制,将message等内容换页到disk 中。
RabbitMQ的内存使用情况可以通过“rabbitmqctl status”或者管理插件中的Web UI查询。
各个内存条目的含义请参照:https://www.rabbitmq.com/memory-use.html
当消息发送的速率超过了RabbitMQ的处理能力时该怎么办?
RabbitMQ会自动减慢这个连接的速率,让client端以为网络带宽变小了,发送消息的速率会受限,从而达到流控的目的。 使用”rabbitmqctl list_connections”查看连接,如果状态为“flow”,则说明这个连接处于flow-control 状态。
- 如何选择RabbitMQ的消息保存方式?
- rabbitmq消费消息的两种方式
- RabbitMQ消息的持久化
- rabbitmq中消息的存储
- 消息队列RabbitMQ的安装
- RabbitMQ消息的传输控制
- RabbitMQ消息队列的总结
- RabbitMq研究历程一:如何使用RabbitMq发送,接收消息
- 如何选择最适合的房屋贷款方式
- 如何选择android app开发的方式
- 如何选择合适的项目开发方式
- RabbitMQ Consumer获取消息的两种方式(poll,subscribe)解析
- RabbitMQ Consumer获取消息的两种方式(poll,subscribe)解析
- RabbitMQ Consumer获取消息的两种方式(poll,subscribe)解析
- RabbitMQ Consumer获取消息的两种方式(poll,subscribe)解析
- 如何保证RabbitMQ的消息不丢失及其背后的原理
- 消费RabbitMQ时的注意事项,如何禁止大量的消息涌到Consumer
- SpringBoot中如何监听两个不同源的RabbitMQ消息队列
- 为什么要自定义UITabBarController
- 苹果ANCS协议学习
- 发送邮件+接收未读邮件
- dockerinstallbashshell
- [RK3399] SDIO 接口 Wifi 驱动流程分析 (AP6354)
- 如何选择RabbitMQ的消息保存方式?
- setTimeout 和 setInteval 的区别。
- Java——计算矩形是否相交、交集面积
- Tips: SSH 无密码登录配置
- 解决不显示menu图标问题
- Oracle单行函数整理
- 添加本地jar到私有maven仓库
- Java内存分配与管理
- Python3.x+requests爬取网站遇到中文乱码的解决方案