检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
实现RabbitMQ节点重启后消费者自动重连 方案概述 RabbitMQ的amqp-client虽然自带重连机制,但是自带的重连机制只会重试一次,重连失败后就不再执行。这时如果消费者没有做额外的重试机制,那么这个消费者就彻底断开与服务端的连接,无法消费消息。
通过消息幂等实现消息去重 方案概述 在RabbitMQ的业务处理过程中,如果消息重发了多次,消费者端对该重复消息消费多次与消费一次的结果是相同的,多次消费并没有对业务产生负面影响,那么这个消息处理过程是幂等的。
dns_enable Boolean 实例是否开启域名访问功能。 true:开启 false:未开启 connect_address String 实例内网连接IP地址。 connect_domain_name String 实例内网连接域名。
dns_enable Boolean 实例是否开启域名访问功能。 true:开启 false:未开启 connect_address String 实例内网连接IP地址。 connect_domain_name String 实例内网连接域名。
dns_enable Boolean 实例是否开启域名访问功能。 true:开启 false:未开启 connect_address String 实例内网连接IP地址。 connect_domain_name String 实例内网连接域名。
获取方法:登录弹性公网IP和带宽的控制台界面,在弹性公网IP的详情页面查的基本信息栏找ID。 enterprise_project_id 否 String 企业项目。 enable_acl 否 Boolean ACL访问控制(仅AMQP版本支持此参数)。
查看和修改RabbitMQ实例基本信息 本节介绍如何在控制台查看RabbitMQ实例的详细信息,以及修改RabbitMQ实例的基本信息。 创建RabbitMQ实例成功后,您可以根据自己的业务情况对RabbitMQ实例的部分配置信息进行调整,包括实例名称、描述、安全组等。 前提条件
通过在客户端侧设置重连机制,使客户端在网络连接断开时自动恢复连接,降低网络故障对业务的影响。以下场景会触发网络自动恢复: 在连接的I/O循环中抛出未处理的异常 检测到Socket读取超时 检测到服务端心跳丢失 4.0.0及以上版本的Java客户端默认支持网络自动恢复,无需设置。
当消息生产时长有明显增加时进行流控措施 CPU使用率 告警阈值:原始值>业务预期使用率(推荐70%) 连续触发次数:连续3~5个周期 告警级别:重要 该指标需要分别为每个节点设置CPU使用率告警,CPU使用率过高可能会影响生产速度 减少镜像队列个数 对于集群实例,建议扩容节点个数,然后进行节点间重平衡
RabbitMQ AMQP-0-9-1版本单机实例和集群实例在变更规格过程中会有秒级连接闪断,客户端需要支持自动重连,建议在业务低峰时进行变更。
消费者确认对数据可靠性十分重要,接收重要消息的消费应用程序在未处理完消息前不应确认消息,以便消费者有足够的时间处理消息,无需担心消息处理过程中由于消费者进程异常(如工作程序崩溃、重启等)导致消息丢失。 消费者确认在客户端上配置,通过配置basicConsume方法启用确认。
Endpoint 指定承载REST服务端点的服务器域名或IP,不同服务不同区域的Endpoint不同,您可以从地区和终端节点获取。 例如IAM服务在“华北-北京四”区域的Endpoint为“iam.cn-north-4.myhuaweicloud.com”。
表1 仲裁队列与镜像队列特性差异 特性 镜像队列 仲裁队列 非持久化队列 支持 不支持 排他队列 支持 不支持 每条消息的持久化 每条消息 永远 队列重平衡 自动 手动 消息超时时间 支持 不支持 队列超时时间 支持 支持 队列长度限制 支持 支持(除x-overflow: reject-publish-dlx
单机实例和没有配置镜像/仲裁队列的集群实例在变更规格过程中会有分钟级业务中断,客户端需要支持自动重连,建议在业务低峰时进行变更。 配置了镜像/仲裁队列的集群实例在变更规格过程中会有秒级业务中断,客户端需要支持自动重连,建议在业务低峰时进行变更。
实现RabbitMQ节点重启后消费者自动重连 本章节提供了RabbitMQ节点重启后消费者自动重连示例代码,实现在通道关闭后重新为消费者创建新的通道继续消费。