检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
amqp-client在节点断连后,根据与通道建立的节点不同,产生不同的错误。 如果通道连接的是队列所在的节点,消费者就会收到一个shutdown信号。这时amqp-client的重连机制就会生效,尝试重新连接服务端。如果连接成功,这个通道就会继续连接消费。
客户端可以使用代理、VPN、专线、FullNAT或者反向代理等方式访问RabbitMQ实例。 父主题: 连接问题
设置队列负载均衡 方案概述 在RabbitMQ集群上,由于扩容节点、删除队列等原因,会导致队列在各个节点分布不均衡,从而造成部分节点压力过大,无法更有效地利用集群。 这时候需要手动设置节点间队列的负载均衡,提升集群的利用率。
RabbitMQ集群实例的连接地址,实际上是实例的LVS节点地址(负载均衡地址),客户端连接实例时,通过负载均衡器将客户端请求分发到集群实例的各个节点。 图1 连接示意图 父主题: 连接问题
all:表示在集群所有的节点上进行镜像。 exactly:表示在指定个数的节点上进行镜像,节点的个数由ha-params指定。 nodes:表示在指定的节点上进行镜像,节点名称通过ha-params指定。 ha-params: ha-mode模式需要用到的参数。
集群内部使用LVS做负载均衡,由LVS将请求均衡分发到每个虚拟机节点。 父主题: 实例问题
前提条件 已获取IAM的Endpoint,具体请参见地区和终端节点。 已获取RabbitMQ的Endpoint,具体请参见地区和终端节点。
配置RabbitMQ持久化 默认情况下,RabbitMQ生产者生产的消息存储在内存中,当节点宕机或重启时,会导致消息丢失。RabbitMQ提供持久化机制,可在节点宕机或重启时确保消息不丢失。持久化包括Exchange持久化、Queue持久化和Message持久化。
使用仲裁队列可以在RabbitMQ节点间进行队列数据的复制,在一个节点宕机时,队列依旧可以正常运行。 仲裁队列适用于队列长时间存在,对队列容错和数据安全要求高,对延迟和队列特性要求相对低的场景。
获取项目ID的接口为“GET https://{Endpoint}/v3/projects”,其中{Endpoint}为IAM的终端节点,可以从地区和终端节点获取。接口的认证鉴权请参见认证鉴权。 响应示例如下,其中projects下的“id”即为项目ID。
跳转到云监控页面,查看实例、节点和队列的监控数据,数据更新周期为1分钟。 单击RabbitMQ实例名称,进入实例详情页。在左侧导航栏单击“监控与告警 > 监控”,进入监控页面,查看实例、节点和队列的监控数据,数据更新周期为1分钟。
延迟消息堆积数量越多,RabbitMQ节点启动加载耗时越久,可能导致节点重启后无法快速恢复业务。 延迟消息在RabbitMQ中为单副本存储,如果该节点发生重启,该节点上的延迟消息无法被消费端消费。
>0 RabbitMQ实例节点 1分钟 rabbitmq_node_queues 节点队列数 该指标用于统计Rabbitmq节点队列个数。 单位:个 说明: 2020年6月及以后购买的实例,支持此监控项。
表1 常用最佳实践 实践 描述 设置队列负载均衡 扩容节点、删除队列可能会导致队列在各个节点分布不均衡,本文介绍如何设置队列负载均衡。
高可用 RabbitMQ集群提供仲裁队列,在RabbitMQ节点间进行队列数据的复制,在一个节点宕机时,队列依旧可以正常运行。 监控和告警 支持对RabbitMQ实例状态进行监控,支持对集群每个代理的内存、CPU、网络流量等进行监控。如果集群或节点状态异常,将触发告警。
规格16u32g,5个节点 dms.instance.rabbitmq.cluster.c3.16u32g.7:RabbitMQ集群,vm规格16u32g,7个节点 type String 实例类型。
终端节点 终端节点(Endpoint)即调用API的请求地址,不同服务不同区域的终端节点不同,您可以从地区和终端节点中查询所有服务的终端节点。 基本概念 账号 用户注册账号时,账号对其所拥有的资源及云服务具有完全的访问权限,可以重置用户密码、分配用户权限等。
规格16u32g,5个节点 dms.instance.rabbitmq.cluster.c3.16u32g.7:RabbitMQ集群,vm规格16u32g,7个节点 charging_mode Integer 付费模式,1表示按需计费,0表示包年/包月计费。
AZ内实例容灾 RabbitMQ集群提供镜像队列,通过镜像在其他节点同步数据。单节点宕机时,仍可通过唯一的访问地址对外提供服务。 数据容灾 通过支持数据多副本方式实现数据容灾。 父主题: 安全
实现RabbitMQ节点重启后消费者自动重连 本章节提供了RabbitMQ节点重启后消费者自动重连示例代码,实现在通道关闭后重新为消费者创建新的通道继续消费。