检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
RabbitMQ支持升级CPU和内存吗? RabbitMQ AMQP-0-9-1版本支持扩容实例规格,RabbitMQ 3.x.x版本支持扩容/缩容代理规格,具体请参见变更实例规格。 父主题: 实例问题
减少惰性队列的消息堆积 减少持久化队列的消息堆积 删除队列 内存使用率 告警阈值:原始值>业务预期使用率(推荐30%) 连续触发次数:连续3~5个周期 告警级别:重要 该指标需要分别为每个节点设置内存使用率告警,避免触发内存高水位阻塞生产 加快消费 采用生产者确认的发送模式,并监控
消息堆积对业务的影响及解决办法 消息堆积对业务的影响 过量的消息堆积可能会引起内存或磁盘告警,从而造成所有connection阻塞,进而影响到其他队列的使用,导致整体服务质量的下降。 消息堆积产生的原因 一般来说消息堆积是由于生产消息的速率远大于消费消息的速率所导致的。比如某个时
RabbitMQ提供基于云监控服务CES的资源和操作监控能力,帮助用户对每个RabbitMQ实例进行自动实时监控、告警和通知操作。用户可以实时掌握实例的各类业务请求、资源占用、流量、连接数和消息积压等关键信息。 关于DMS for RabbitMQ支持的监控指标,以及如何创建监控告警规则等内容,请参见支持的监控指标。
消息存储在内存中,当需要释放内存时,会将内存中的消息换页至磁盘中。换页操作会消耗较长的时间,且换页过程中队列无法处理消息。 如果生产速度过快(例如执行批处理任务),或者消费者由于各种原因(例如消费者下线、宕机)长时间内无法消费消息,导致消息大量堆积,使得内存使用率过高,换页频繁,
该指标用于统计当前节点RabbitMQ所使用的Erlang进程数。 单位:个 0~1048576 RabbitMQ实例节点 1分钟 mem_used 内存占用 该指标用于统计当前节点RabbitMQ内存占用。 单位:Byte、KB、MB、GB、TB、PB 0~32000000000 RabbitMQ实例节点 1分钟 disk_free
队列长度、集群负载均衡、优先队列数量等参数,实现RabbitMQ的高性能。 使用较小的队列长度 队列中存在大量消息时,会给内存使用带来沉重的负担。为了释放内存,RabbitMQ会将消息刷新到磁盘。刷盘需要重建索引,重启包含大量消息的集群,导致这个过程非常耗时。当刷盘的消息过多时,
RabbitMQ实例的SSL开关是否支持修改? RabbitMQ实例是否支持扩容? RabbitMQ支持双向认证吗? RabbitMQ支持升级CPU和内存吗? 如何关闭RabbitMQ的WebUI? 实例是否支持修改可用区? 如何获取region id? 为什么不能选择2个可用区? 单机RabbitMQ实例如何变更为集群实例?
2047 RabbitMQ AMQP-0-9-1版本:<= 2000 内存高水位阈值 <= 40% 内存使用率超过40%可能会触发内存高水位,内存高水位会导致生产者流程被阻塞。 仅RabbitMQ 3.8.35版本存在内存高水位限制。 磁盘高水位阈值 >= 5GB 磁盘剩余空间低于5GB会触发磁盘高水位,生产者流程被阻塞。
无法被消费端消费。 消减措施 已开启延迟消息插件的实例,建议分别为每个节点配置内存使用率告警,内存使用率达到40%将触发内存高水位,告警阈值建议设置为30%。如果触发告警,建议扩容代理规格,避免触发内存高水位。如果已经由于延迟消息导致高水位,建议加快消费,减少延迟消息堆积。 替代方案
basicAck(deliveryTag, false); } }); 未确认的消息缓存在内存中,如果未确认的消息过多,会导致内存使用率过高,此时可以在客户端配置预取值来限制消费者预取的消息数量,具体方法请参见配置RabbitMQ消息预取值。 父主题: 管理消息
预取值设置太大可能会导致从队列中取出大量消息传递给一个消费者,而使其他消费者处于空闲状态。另外还需要考虑消费者的配置,消费者在处理消息时会将所有消息保存在内存中,太大的预取值会对消费者的性能产生负面影响,甚至可能会导致消费者崩溃。 更多关于预取值的说明,请参考Consumer Prefetch。
量堆积的场景,不推荐使用仲裁队列,因为仲裁队列的写入会造成成倍的磁盘占用。 仲裁队列的消息会优先保存在内存中,使用仲裁队列时,建议定义队列最大长度和最大内存占用,在消息堆积超过阈值时从内存转移到磁盘,以免造成内存高水位。 更多关于仲裁队列的说明,请参考Quorum Queues。
用、监控和告警等特性,广泛应用于秒杀、流控、系统解耦等场景。 即开即用 分布式消息服务RabbitMQ版提供单机和集群的消息实例,拥有丰富内存规格,您可以通过控制台直接下单购买并创建,无需单独准备服务器资源。 消息特性丰富 支持AMQP协议,支持普通消息、广播消息、死信、延迟消息等特性。
磁盘的读写速度远不如内存,开启消息持久化后,RabbitMQ的性能会下降。与惰性队列不同,持久化消息会在磁盘和内存中各存储一份,只有在内存空间不够时,才会将内存中的消息删除,存储到磁盘中。 非持久化的Queue、Exchange在重启之后会丢失。 非持久化的Message在重启之
节约成本的机会。也可以根据成本分析阶段的分析结果识别成本偏高的资源,然后采取针对性的优化措施。 监控资源利用率,评估当前配置是否过高。例如:CPU、内存、云硬盘等资源的利用率。 监控闲置的资源,避免浪费。例如:未挂载的云硬盘、未绑定的EIP等。 计费模式优化 不同类型的业务对资源
如果需要设置Queue为惰性队列,请输入“lazy”。 惰性队列会尽可能的将消息存入磁盘中,在消费者消费到相应的消息时才会被加载到内存中,这样可以减少内存的消耗。 单击“确定”,完成Queue的创建。 在“Queue”页签中,查询新创建的Queue。 父主题: 配置Vhost
需要配置,防止消息堆积过多而引起的内存问题导致宕机。 Max length bytes 无需配置,支持海量消息堆积。 需要配置,防止消息堆积过多而引起的内存问题导致宕机。 Max in memory length 无需配置,支持海量消息堆积。 需要配置,防止消息堆积过多而引起的内存问题导致宕机。 Max
与其他云服务的关系 弹性云服务器(Elastic Cloud Server) 弹性云服务器是由CPU、内存、操作系统、云硬盘组成的基础的计算组件。RabbitMQ实例运行在弹性云服务器上,一个代理对应一台弹性云服务器。 云硬盘(Elastic Volume Service) 云硬
rabbitmq_web_stomp插件通过临时队列提供WebSocket能力,同时其连接和释放依赖于心跳机制,过多的临时队列以及过多连接数会导致内存高水位,从而导致节点状态异常。 消减措施 已开启插件的实例,建议参考设置RabbitMQ告警规则,配置相应的告警,提前预知并消减风险。 替代方案