检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
实现RabbitMQ节点重启后消费者自动重连 方案概述 RabbitMQ的amqp-client虽然自带重连机制,但是自带的重连机制只会重试一次,重连失败后就不再执行。这时如果消费者没有做额外的重试机制,那么这个消费者就彻底断开与服务端的连接,无法消费消息。 amqp-client在节点断连后
为什么RabbitMQ集群只有一个连接地址? RabbitMQ集群实例的连接地址,实际上是实例的LVS节点地址(负载均衡地址),客户端连接实例时,通过负载均衡器将客户端请求分发到集群实例的各个节点。 图1 连接示意图 父主题: 连接问题
客户端是否可以通过DNAT方式访问RabbitMQ实例? 不可以。客户端可以使用代理、VPN、专线、FullNAT或者反向代理等方式访问RabbitMQ实例。 父主题: 连接问题
RabbitMQ支持升级CPU和内存吗? RabbitMQ AMQP-0-9-1版本支持扩容实例规格,RabbitMQ 3.x.x版本支持扩容/缩容代理规格,具体请参见变更实例规格。 父主题: 实例问题
RabbitMQ集群实例如何均衡分发请求到每个虚拟机? 集群内部使用LVS做负载均衡,由LVS将请求均衡分发到每个虚拟机节点。 父主题: 实例问题
RabbitMQ实例集群内部的队列是否有冗余备份? 队列是否做镜像(即冗余备份)取决于用户的需要,如果用户设置了镜像,会在集群中多个代理上存储队列的副本,当某个代理故障,集群会从其他正常的代理中选择一个代理,用来同步队列数据。 父主题: 实例问题
在RabbitMQ集群上,由于扩容节点、删除队列等原因,会导致队列在各个节点分布不均衡,从而造成部分节点压力过大,无法更有效地利用集群。 这时候需要手动设置节点间队列的负载均衡,提升集群的利用率。设置队列负载均衡的方法如下: 删除队列重建 通过Policy修改master节点方式 删除队列重建 登录RabbitMQ
RabbitMQ实例是否支持扩容? RabbitMQ 3.8.35版本:单机版本的支持扩大存储空间,以及扩容/缩容代理规格。集群版本支持扩大存储空间和代理个数,以及扩容/缩容代理规格。 RabbitMQ AMQP-0-9-1版本:支持扩容存储空间和实例规格。 父主题: 实例问题
指明镜像队列的模式,有效取值范围为:all、exactly和nodes。 all:表示在集群所有的节点上进行镜像。 exactly:表示在指定个数的节点上进行镜像,节点的个数由ha-params指定。 nodes:表示在指定的节点上进行镜像,节点名称通过ha-params指定。 ha-params: ha-mode模式需要用到的参数。
配置RabbitMQ持久化 默认情况下,RabbitMQ生产者生产的消息存储在内存中,当节点宕机或重启时,会导致消息丢失。RabbitMQ提供持久化机制,可在节点宕机或重启时确保消息不丢失。持久化包括Exchange持久化、Queue持久化和Message持久化。 持久化是将内存
服务器无法根据客户端请求的内容特性完成请求。 407 Proxy Authentication Required 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权。 408 Request Time-out 服务器等候请求时发生超时。 客户端可以随时再次提交该请求而无需进行任何更改。
Cloud Server) 弹性云服务器是由CPU、内存、操作系统、云硬盘组成的基础的计算组件。RabbitMQ实例运行在弹性云服务器上,一个代理对应一台弹性云服务器。 云硬盘(Elastic Volume Service) 云硬盘为云服务器提供块存储服务,RabbitMQ的所有数据(如消息和日志等)都保存在云硬盘中。
RabbitMQ集群提供仲裁队列,在RabbitMQ节点间进行队列数据的复制,在一个节点宕机时,队列依旧可以正常运行。 监控和告警 支持对RabbitMQ实例状态进行监控,支持对集群每个代理的内存、CPU、网络流量等进行监控。如果集群或节点状态异常,将触发告警。
配置RabbitMQ仲裁队列 仲裁队列(Quorum Queues)提供队列复制的能力,保障数据的高可用和安全性。使用仲裁队列可以在RabbitMQ节点间进行队列数据的复制,在一个节点宕机时,队列依旧可以正常运行。 仲裁队列适用于队列长时间存在,对队列容错和数据安全要求高,对延迟和队列特性要求相对低的场景
只支持扩大存储空间,不支持减小存储空间。 代理数量 集群实例只支持增加代理数量,不支持减小代理数量。 增加代理数量过程中会有秒级业务中断,客户端需要支持自动重连,建议在业务低峰时进行变更。 单机实例不支持修改代理数量。 仅RabbitMQ 3.8.35版本支持修改代理数量。 代理规格 RabbitMQ
未变为“运行中”,请联系客服处理。 扩容代理数量 在“变更类型”中,选择“代理数量”,在“代理数量”中,选择扩容后的代理个数。不同实例规格对应的代理数量范围不同,具体请参考产品规格。如果已开启公网访问,在“弹性IP地址”中,选择新扩容代理的公网IP地址,单击“下一步”。 确认扩容信息无误后,单击“提交”。
API调用方法请参考如何调用API。 前提条件 已获取IAM的Endpoint,具体请参见地区和终端节点。 已获取RabbitMQ的Endpoint,具体请参见地区和终端节点。 创建RabbitMQ实例 如下示例是创建RabbitMQ实例的请求消息: { "name": "rabbitmq"
队列是用于存储消息的,生产者将消息送到队列,消费者从队列中获取和消费消息。多个消费者可以同时订阅同一个队列,队列里的消息分配给不同的消费者。 代理(Broker) 消息中间件的服务节点。 Vhost Vhost是指虚拟主机,用作逻辑隔离,分别管理Exchange、Queue和Binding,使得应用安全
告警阈值:原始值>业务预期使用率(推荐70%) 连续触发次数:连续3~5个周期 告警级别:重要 该指标需要分别为每个节点设置CPU使用率告警,CPU使用率过高可能会影响生产速度 减少镜像队列个数 对于集群实例,建议扩容节点个数,然后进行节点间重平衡 可消费消息数 告警阈值:原始值>业务预期可消费消息数 连续触发次数:1
延迟消息堆积数量越多,RabbitMQ节点启动加载耗时越久,可能导致节点重启后无法快速恢复业务。 延迟消息在RabbitMQ中为单副本存储,如果该节点发生重启,该节点上的延迟消息无法被消费端消费。 消减措施 已开启延迟消息插件的实例,建议分别为每个节点配置内存使用率告警,内存使用率达到