检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
实现网络异常时RabbitMQ客户端自动恢复 方案概述 由于服务端重启、网络抖动等原因造成客户端网络连接断开时,将导致客户端无法正常生产和消费消息。 通过在客户端侧设置重连机制,使客户端在网络连接断开时自动恢复连接,降低网络故障对业务的影响。以下场景会触发网络自动恢复: 在连接的I/O循环中抛出未处理的异常
连接RabbitMQ网络要求 客户端可以通过公网连接RabbitMQ实例,也可以通过内网连接RabbitMQ实例。使用内网连接时,注意以下几点: 如果客户端和RabbitMQ实例部署在同一个VPC内,网络默认互通。 如果客户端和RabbitMQ实例部署在不同VPC中,由于VPC之
消费,减少延迟消息堆积。 替代方案 未开启延迟消息插件的RabbitMQ实例,如果需要使用延迟消息功能,建议使用RabbitMQ AMQP-0-9-1版本的定时消息或分布式消息服务RocketMQ版的定时/延迟消息代替。 已开启延迟消息插件的RabbitMQ实例,建议尽快将使用延迟消息的业务改造迁移至RabbitMQ
配置RabbitMQ网络连接 连接RabbitMQ网络要求 配置RabbitMQ实例的公网访问 父主题: 连接实例
实例的公网访问功能,并设置弹性IP地址。当业务不再使用公网访问功能时,也可以关闭实例的公网访问功能。 公网访问与VPC内访问相比,可能存在网络丢包和抖动等情况,且访问时延有所增加,因此建议仅在业务开发测试阶段开启公网访问RabbitMQ实例。 前提条件 仅状态为“运行中”的实例,可以开启公网访问功能。
过低,在短暂网络抖动情况下可能会导致连接重建。如果心跳超时时间设置过长,可能导致集群进行主备切换时感知时间过长。推荐设置心跳超时时间为10s。 什么是心跳 RabbitMQ实例提供了心跳功能,以确保应用程序层及时发现中断的连接和完全无响应的对端。心跳还可以防止某些网络设备在一段时
x.x版本实例已下线延时消息插件功能,建议使用RabbitMQ AMQP-0-9-1版本的定时消息或分布式消息服务RocketMQ版的定时/延迟消息代替。 父主题: 消息问题
公网访问 客户端在其他网络环境,或者与RabbitMQ实例处于不同region,则访问实例的公网地址。 不同网络环境,对于客户端配置来说,只是连接地址的差异,其他都一样。因此,本手册以同一VPC内子网地址的方式,介绍客户端开发环境搭建。 遇到连接超时或失败时,请注意确认网络是否连通。可使
RabbitMQ实例是否支持跨VPC访问? RabbitMQ实例支持跨VPC访问,可以通过创建VPC对等连接,将两个VPC的网络打通,实现跨VPC访问实例。 关于创建和使用VPC对等连接,请参考VPC对等连接说明。 父主题: 连接问题
bitMQ节点间进行队列数据的复制,在一个节点宕机时,队列依旧可以正常运行。 仲裁队列适用于队列长时间存在,对队列容错和数据安全要求高,对延迟和队列特性要求相对低的场景。在可能出现消息大量堆积的场景,不推荐使用仲裁队列,因为仲裁队列的写入会造成成倍的磁盘占用。 仲裁队列的消息会优
丰富内存规格,您可以通过控制台直接下单购买并创建,无需单独准备服务器资源。 消息特性丰富 支持AMQP协议,支持普通消息、广播消息、死信、延迟消息等特性。 灵活路由 在RabbitMQ中,生产者将消息发送到交换器,由交换器将消息路由到队列中。交换器支持Direct、Topic、H
未开启SSL。 在实例详情中查看并记录“内网连接地址/公网连接地址”。 客户端所在服务器和RabbitMQ实例之间网络已互通,具体网络要求参见连接RabbitMQ网络要求。 客户端所在服务器已安装Java Development Kit 1.8.111或以上版本,并配置JAVA_
cluster_partition_handling pause_minority 当集群发生网络分区时,代理会检查自己是否处于“少数派”(存储分区的代理数小于等于总代理数的一半称为少数派)。少数派中的代理将会自动关闭服务并定期检测网络状态,待分区恢复之后重新启动服务。如果未开启镜像队列,发生分区时少数派上的队列将无法生产消费。
RabbitMQ实例的Web管理页面无法打开 可能原因:实例安全组配置不正确 解决方案:重新配置安全组,具体步骤如下。 在实例详情页面的“基本信息 > 网络”,单击安全组名称,跳转到安全组页面。 选择“入方向规则”,查看安全组入方向规则。 实例未开启SSL开关 如果是VPC内访问,实例安全组入方向规则,需要允许端口5672的访问。
例如在支付场景下,用户购买商品后进行支付,由于网络不稳定导致用户收到多次扣款请求,导致重复扣款。但实际上扣款业务只应进行一次,商家也只应产生一条订单流水。这时候使用消息幂等就可以避免这个问题。 在实际应用中,导致消息重复的原因有网络闪断、客户端故障等,且可能发生在消息生产阶段,也
产品公告 【下线公告】华为分布式消息服务RabbitMQ版延迟消息插件下线公告 【下线公告】华为分布式消息服务RabbitMQ版下线部分插件
责任共担 华为云秉承“将公司对网络和业务安全性保障的责任置于公司的商业利益之上”。针对层出不穷的云安全挑战和无孔不入的云安全威胁与攻击,华为云在遵从法律法规业界标准的基础上,以安全生态圈为护城河,依托华为独有的软硬件优势,构建面向不同区域和行业的完善云服务安全保障体系。 安全性是华为云与您的共同责任,如图1所示。
msg, message -> { /** * 设置延迟时间 */ message.getMessageProperties()
不支持 不支持 3.8.35版本:支持。建议优先级大小设置在0-10之间。 AMQP-0-9-1版本:支持。优先级大小设置在1-9之间。 延迟队列 支持 不支持 3.8.35版本:不支持。 AMQP-0-9-1版本:支持。 死信队列 支持 不支持 支持 消息重试 支持 不支持 3
abbitMQ。 表1 RabbitMQ最佳实践一览表 最佳实践 说明 实现网络异常时RabbitMQ客户端自动恢复 本章节提供了客户端重连示例代码,使客户端在网络异常导致连接断开时自动恢复连接,降低网络故障对业务的影响。 实现RabbitMQ节点重启后消费者自动重连 本章节提供