检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
ange。 下线范围 下线区域:所有区域 下线原因 开启延迟消息插件的实例,延迟消息堆积后存在以下风险: 延迟消息存储在Mnesia内存数据库中,堆积过多(数十万甚至数百万条)可能触发内存高水位阻塞生产消息,具体请参见Limitations。 延迟消息堆积数量越多,RabbitM
消费者根据messageID对消息进行幂等处理,示例代码如下: //创建一个以messageID为主键的数据库表,利用数据库主键去重的方式来处理RabbitMQ幂等。 //在消费者消费前先去数据库查询这条消息是否存在,如果存在表示消息已被消费,无需处理;如果不存在表示消息未被消费,执行消费操作
构建生产消费客户端。 本文以Linux系统的弹性云服务器(Elastic Cloud Server,简称ECS)作为生产消费客户端。在创建RabbitMQ实例前,请先创建开启弹性公网IP的ECS、安装JDK以及配置环境变量。 登录管理控制台,在左上角单击,选择“计算 > 弹性云服务器”,创建一个ECS实例。
查看队列类型 在“Queues”页面,单击队列名称,进入队列详情页。查看当前仲裁队列主副本所在节点和在线副本所在节点。 图3 队列详情页 配置仲裁队列的长度 通过配置Policy或者队列属性的方式可以限制仲裁队列的长度和在内存中保存的长度。 x-max-length:仲裁队列最大消息数。如果超过则丢弃消息,或者发送到死信交换器。
如果未安装Python,请使用以下命令安装: yum install python Python版的RabbitMQ客户端,本文使用pika作为连接RabbitMQ的客户端 执行以下命令,安装推荐版本的pika: pip install pika 如果无法使用pip命令安装pika,建议改用pip3命令安装pika:
RabbitMQ实例Exchange rabbitmq_vhost_queue RabbitMQ实例Queue 父主题: 查看监控指标与配置告警
SDK列表 在开始使用之前,请确保您安装的是最新版本的SDK。使用过时的版本可能会导致兼容性问题或无法使用最新功能。您可以在SDK中心查询版本信息。 表1提供了分布式消息服务RabbitMQ版支持的SDK列表,您可以在GitHub仓库查看SDK更新历史、获取安装包以及查看指导文档。 表1 SDK列表
络已互通,具体网络要求参见连接RabbitMQ网络要求。 客户端所在服务器已安装Java Development Kit 1.8.111或以上版本,并配置JAVA_HOME与PATH环境变量,环境变量配置方法如下: 使用执行用户在用户家目录下修改“.bash_profile”,添
配置RabbitMQ持久化 默认情况下,RabbitMQ生产者生产的消息存储在内存中,当节点宕机或重启时,会导致消息丢失。RabbitMQ提供持久化机制,可在节点宕机或重启时确保消息不丢失。持久化包括Exchange持久化、Queue持久化和Message持久化。 持久化是将内存
配置RabbitMQ TTL TTL(Time To Live)即过期时间。消息在队列中的生存时间超过了TTL后,消息会被丢弃,如果队列设置了死信交换机,丢弃的消息会被转发到死信交换机,由死信交换机将其路由到死信队列。更多关于TTL的说明,请参考TTL。 RabbitMQ支持设置
配置RabbitMQ监控告警 本章节主要介绍部分监控指标的告警策略,以及配置操作。在实际业务中,建议按照以下告警策略,配置监控指标的告警规则。 表1 RabbitMQ实例配置告警的指标(RabbitMQ 3.x.x版本) 指标名称 告警策略 指标说明 解决方案 内存高水位状态 告警阈值:原始值>=1
配置RabbitMQ镜像队列 镜像队列是指允许集群将队列镜像到其他节点上,当集群某一节点宕机后,队列能自动切换到镜像中的其他节点,保证服务的可用性。 本章节指导如何在RabbitMQ WebUI为Vhost配置镜像队列策略,满足策略条件的队列将成为镜像队列。 RabbitMQ AMQP-0-9-1版本不支持镜像队列。
配置RabbitMQ惰性队列 默认情况下,RabbitMQ生产者生产的消息存储在内存中,当需要释放内存时,会将内存中的消息换页至磁盘中。换页操作会消耗较长的时间,且换页过程中队列无法处理消息。 如果生产速度过快(例如执行批处理任务),或者消费者由于各种原因(例如消费者下线、宕机)
配置RabbitMQ ACL用户 RabbitMQ实例开启ACL访问控制后,生产和消费消息时需要进行ACL用户鉴权,鉴权成功后才能生产和消费消息。 本章节介绍如何创建、编辑和删除用户。 仅RabbitMQ AMQP-0-9-1版本支持在控制台配置RabbitMQ ACL用户。RabbitMQ
创建Vhost。 如果是Vhost名称填错了,请参考RabbitMQ控制台的“Vhost列表”页面显示的Vhost名称,修改连接URL和配置文件。 父主题: 连接问题
配置RabbitMQ实例的公网访问 当您需要通过公网地址访问RabbitMQ实例时,可开启实例的公网访问功能,并设置弹性IP地址。当业务不再使用公网访问功能时,也可以关闭实例的公网访问功能。 公网访问与VPC内访问相比,可能存在网络丢包和抖动等情况,且访问时延有所增加,因此建议仅
1在消费消息。 更多关于单一活跃消费者的说明,请参考Single Active Consumer。 图1 单一活跃消费者消费流程 配置单一活跃消费者 在声明队列时,可以配置单一活跃消费者,只需要将队列的“x-single-active-consumer”参数设置为“true”。 以下示例演示在Java客户端设置单一活跃消费者。
配置Vhost 创建RabbitMQ Vhost 创建RabbitMQ Exchange 绑定RabbitMQ Exchange 创建RabbitMQ Queue 绑定RabbitMQ Queue 管理RabbitMQ Vhost 管理RabbitMQ Exchange 管理RabbitMQ
配置高级特性 配置RabbitMQ持久化 配置RabbitMQ TTL
AMQPUserPerm objects 需要配置权限的Vhost,一个用户可以配置多个Vhost下的资源权限。 表3 AMQPUserPerm 参数 是否必选 参数类型 描述 vhost 否 String 需要配置权限的Vhost名称,一个用户可以配置多个Vhost下的资源权限。 conf