[转帖]如何选择RabbitMQ的消息保存方式?

如何,选择,rabbitmq,消息,保存,方式 · 浏览次数 : 0

小编点评

**RabbitMQ 消息保存方式** * **disc**:当 RabbitMQ 失效时,消息仍然可以在重启之后恢复。 * **ram**:处理消息效率更高,但访问量受内存限制。 **内存限制参数** * **vm_memory_high_watermark_paging_ratio**:表示当 RabbitMQ 使用内存超过 75% 时启用分页机制。 * **vm_memory_high_watermark**:表示当 RabbitMQ 使用内存超过 40% 时启动内存限制。 **消息发送速率限制** 当消息发送的速率超过 RabbitMQ 的处理能力时,该连接会被自动减慢以实现流控。 **其他** * 在使用 ram 模式时,访问量受可用的内存数的限制。 * “rabbitmqctl status” 或管理插件中的 Web UI 可查询内存使用情况。 * “vm_memory_high_watermark_paging_ratio” 和 “vm_memory_high_watermark” 参数用于限制内存使用。

正文

https://www.cnblogs.com/zhengchunyuan/p/10179677.html

 

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的消息保存方式?

https://www.cnblogs.com/zhengchunyuan/p/10179677.html RabbitMQ对于queue中的message的保存方式有两种方式:disc和ram。如果采用disc,则需要对exchange/queue/delivery mode都要设置成durabl

[转帖]探讨内存基础知识和如何选择内存条

https://zhuanlan.zhihu.com/p/257286284 内存也称内存储器和主存储器,它用于暂时存放CPU中的运算数据,与硬盘等外部存储器交换的数据。 简单的说就是在操作系统的文件会储存在硬盘内存,当操作系统运作起来的时候会从硬盘内面读取数据储存在内存,CPU从内存读取数据,CP

[转帖]如何通过dba_hist_active_sess_history分析数据库历史性能问题

https://www.cnblogs.com/DataArt/p/10018932.html 在数据库运行的过程中,我们有时会碰到数据库hung住的问题,在这个时候很多人会选择尽快让它恢复正常而不是找出问题的root cause. 只有在问题被解决后,才意识到需要找到root cause来避免再次

[转帖]什么是内存颗粒?

https://zhuanlan.zhihu.com/p/257999332 关于内存的基础知识和选购感兴趣的朋友看看这个 探讨内存基础知识和如何选择内存条12 赞同 · 5 评论文章 什么是内存颗粒? 晚上回去拆开机箱,把内存掰下来,狠心大力掰外开壳。 红色圈圈的黑色块状的东西就是内存颗粒 内存颗

[转帖]window10下如何安装fio

1、fio下载地址(实测有效): https://github.com/axboe/fio/releaseshttps://github.com/axboe/fio/releases 其他的地址如​​http://www.bluestop.org/fio/试了一下,打不开。 2、根据个人具体情况选择

[转帖]国产数据库到底行不行?人大金仓KINGBASE数据库与主流开源数据库性能实测

近年来,人大金仓的数据库产品受到了外界诸多的关注。做产品,免不了要接受用户的对比和选择,数据库因其行业的自身特点,还有很多开源的技术产品同台比拼,用户因此也会产生诸多疑问,国产数据库相比开源数据库到底如何,今天我们选择数据库的一项核心能力——性能,将金仓KingbaseES和目前业界主流的两种开源数

[转帖]一文看懂家庭宽带光纤是如何入户

目前,家庭宽带普遍实现了光纤入户,入户光纤一般在弱电箱的位置,家庭装修需要预埋网线,才能在后期流畅的使用网络。下文对网线预埋、网线选择、组网方式三个方面说一说。 一、光纤如何入户 1、光纤如何入户 入户光纤是不用家庭用户操心的,运营商在小区附件,一般部署了分光箱等。装机员会从分光箱拉一条皮纤到房子的

[转帖]【官方文档】Nginx负载均衡学习笔记(三) TCP和UDP负载平衡官方参考文档

本章介绍如何使用NGINX Plus和NGINX开放源代理和负载平衡TCP和UDP流量。 目录 介绍先决条件配置反向代理配置TCP或UDP负载平衡被动健康监控 选择负载平衡方法配置会话持久性 主动健康监控 怎么运行的先决条件基本配置微调健康检查使用匹配配置块进行微调健康检查 TCP的微调健康检查UD

[转帖]在 CentOS 7 上安装并配置 Python 3.6环境

https://www.jianshu.com/p/b978e46de442 拖了很久没有更新,抱歉啦~ 今天受邀写篇如何在 CentOS 7 上配置 Python 3 环境的文章。往常我都选择直接把我早年写的一篇文章《源码编译MongoDB》丢过去,让他们看其中的源码编译 Python 那一节,不

[转帖]jmeter SSL证书相关配置

在实际工作中,我们大多数接口都是用的HTTPS来保证安全,使用jmeter测试HTTPS请求是如何配置证书呢? 1.最简单的方法,在选项里选择SSL管理器,然后选择相应的证书即可 在弹出的选择框选择证书即可,亲测可以使用.p12证书,因为我们公司用的是p12类型证书,当发起HTTPS请求时,如果设置