检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
RabbitMQ业务使用流程 分布式消息服务RabbitMQ版完全兼容开源RabbitMQ,为您提供即开即用、消息特性丰富、灵活路由、高可用、监控和告警等特性,广泛应用于秒杀、流控、系统解耦等场景。 使用RabbitMQ实例生产消费消息的流程如下图所示。 图1 RabbitMQ业务使用流程 创建用户并授权使用DMS
通过消息幂等实现消息去重 方案概述 在RabbitMQ的业务处理过程中,如果消息重发了多次,消费者端对该重复消息消费多次与消费一次的结果是相同的,多次消费并没有对业务产生负面影响,那么这个消息处理过程是幂等的。消息幂等保证了无论消息被重复投递多少次,最终的处理结果都是一致的,避免了因消息重复而对业务产生影响。
实现网络异常时RabbitMQ客户端自动恢复 方案概述 由于服务端重启、网络抖动等原因造成客户端网络连接断开时,将导致客户端无法正常生产和消费消息。 通过在客户端侧设置重连机制,使客户端在网络连接断开时自动恢复连接,降低网络故障对业务的影响。以下场景会触发网络自动恢复: 在连接的I/O循环中抛出未处理的异常
实现RabbitMQ节点重启后消费者自动重连 方案概述 RabbitMQ的amqp-client虽然自带重连机制,但是自带的重连机制只会重试一次,重连失败后就不再执行。这时如果消费者没有做额外的重试机制,那么这个消费者就彻底断开与服务端的连接,无法消费消息。 amqp-clien
异步通信 将业务中属于非核心或不重要的流程部分,使用消息异步通知的方式发给目标系统,这样主业务流程无需同步等待其他系统的处理结果,从而达到系统快速响应的目的。 如网站的用户注册场景,在用户注册成功后,还需要发送注册邮件与注册短信,这两个流程使用RabbitMQ消息服务通知邮件发送
AMQP-0-9-1版本:支持。 多租户 支持 支持 支持 多协议支持 兼容RocketMQ协议。 只支持Kafka自定义协议。 RabbitMQ基于AMQP协议实现。 跨语言支持 支持多语言的客户端。 采用Scala和Java编写,支持多种语言的客户端。 支持多种语言的客户端。 流量控制 RocketMQ
Queue)会尽可能的将消息存入磁盘中,在消费者消费到相应的消息时才会被加载到内存中,这样可以减少内存的消耗,但是会增加I/O的使用,影响单个队列的吞吐量。惰性队列的一个重要的设计目标是能够支持更长的队列,即支持更多的消息存储/消息堆积。 在以下情况下,推荐使用惰性队列: 队列可能会产生消息堆积。 队列对性能(吞吐量)的要求不是非常高,例如TPS
RabbitMQ实例是否支持跨VPC访问? RabbitMQ实例支持跨VPC访问,可以通过创建VPC对等连接,将两个VPC的网络打通,实现跨VPC访问实例。 关于创建和使用VPC对等连接,请参考VPC对等连接说明。 父主题: 连接问题
本文将为您介绍分布式消息服务RabbitMQ版入门的使用流程,以创建一个未开启SSL的RabbitMQ实例,客户端使用内网通过同一个VPC连接RabbitMQ实例生产消费消息为例,帮助您快速上手RabbitMQ。 图1 RabbitMQ使用流程 准备工作 RabbitMQ实例运行于虚拟私有云(Virtual
MQ版一般在1个月内进行修复,修复策略与社区保持一致。 操作系统紧急漏洞按照操作系统修复策略和流程对外发布,一般在一个月内提供修复方案,用户自行修复。 其他漏洞: 按照版本正常升级流程解决。 修复声明 为了防止客户遭遇不当风险,除漏洞背景信息、漏洞详情、漏洞原理分析、影响范围/版
如果客户端和RabbitMQ实例部署在不同VPC中,由于VPC之间逻辑隔离,客户端和RabbitMQ实例不能直接通信,需要打通VPC之间的网络。 表1 连接方式说明 连接方式 实现方式 参考文档 公网连接 在RabbitMQ控制台开启公网访问,配置弹性公网IP,客户端通过弹性公网IP访问RabbitMQ实例。 配置RabbitMQ实例的公网访问
开启RabbitMQ ACL访问 通过ACL可以实现对RabbitMQ实例中生产者和消费者身份的精确识别,为不同用户赋予不同的Vhost和Vhost下不同资源的权限,以达到不同用户之间权限隔离的目的。开启ACL权限控制功能后,生产消息和消费消息时,需要鉴权。 仅RabbitMQ
通过成本标签进行成本分配 标签是华为云为了标识云资源,按各种维度(例如用途、所有者或环境)对云资源进行分类的标记。推荐企业使用预定义标签进行成本归集,具体流程如下: 图3 为RabbitMQ实例添加标签 详细介绍请参见通过成本标签维度查看成本分配。 使用成本单元进行成本分配 企业可以使用成本中心
AMQP-0-9-1版本RabbitMQ与开源RabbitMQ的差异 AMQP-0-9-1版本RabbitMQ是一款基于高可用分布式存储架构实现的AMQP 0-9-1协议的消息产品,能够兼容开源的RabbitMQ客户端。与开源RabbitMQ相比,能够解决各种稳定性痛点(例如消息堆
大多数客户端并未实现通道的线程安全,所以不要在线程之间共享通道。 不要频繁打开和关闭连接或通道 频繁打开和关闭连接或通道会发送和接收大量的TCP包,从而导致更高的延迟,确保不要频繁打开和关闭连接或通道。 生产者和消费者使用不同的连接 生产者和消费者使用不同的连接以实现高吞吐量。当生
仲裁队列与镜像队列的差异 仲裁队列是RabbitMQ 3.8版本引入的队列类型,它与镜像队列拥有类似的功能,为RabbitMQ提供高可用的队列。镜像队列有一些设计上的缺陷,这也是RabbitMQ提供仲裁队列的原因。 镜像队列主要的缺陷在于消息同步的性能低。 镜像队列包含一个主队列和多个从队列,当生产
最佳实践 说明 实现网络异常时RabbitMQ客户端自动恢复 本章节提供了客户端重连示例代码,使客户端在网络异常导致连接断开时自动恢复连接,降低网络故障对业务的影响。 实现RabbitMQ节点重启后消费者自动重连 本章节提供了RabbitMQ节点重启后消费者自动重连示例代码,实现在通道关闭后重新为消费者创建新的通道继续消费。
版本支持公告 版本号说明 分布式消息服务RabbitMQ版的版本号格式为:消息引擎类型 x.y.z,其中消息引擎类型为RabbitMQ,版本号具体含义如图1所示。 图1 版本号示例 版本支持情况 分布式消息服务RabbitMQ版支持的版本:3.8.35 版本生命周期 分布式消息服
RabbitMQ实例的Web管理页面无法打开 可能原因:实例安全组配置不正确 解决方案:重新配置安全组,具体步骤如下。 在实例详情页面的“基本信息 > 网络”,单击安全组名称,跳转到安全组页面。 选择“入方向规则”,查看安全组入方向规则。 实例未开启SSL开关 如果是VPC内访问
RabbitMQ系统策略。若您需要对除DMS for RabbitMQ之外的其它服务授权,IAM支持服务的所有策略请参见权限策略。 示例流程 图1 给用户授权DMS for RabbitMQ权限流程 创建用户组并授权 在IAM控制台创建用户组,并授予DMS for RabbitMQ的只读权限“DMS ReadOnlyAccess”。