检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
Queue用于存储消息,每个消息都会被发送到一个或多个Queue中。 绑定Queue Exchange收到消息后,根据路由键将消息发送到绑定的Queue。 连接实例 客户端使用内网/公网连接RabbitMQ实例,并生产消费消息。
vm_specification String 虚拟机规格。 product_id String 产品ID。 spec_code String 规格ID。 表5 RabbitMQ集群实例的detail参数说明 参数 类型 备注 vm_specification String 虚拟机规格。 product_info
告警级别:重要 未确认消息数过多可能会导致消息堆积 检查消费者是否异常 检查消费者逻辑是否消耗时间过长 连接数 告警阈值:原始值>业务预期连接数 连续触发次数:1 告警级别:重要 连接数突增可能是流量变大的预警 需检查业务是否正常,可参考其他告警 通道数 告警阈值:原始值>业务预期通道数
开启待下线插件后,容易引起过载风险,影响业务面稳定。 rabbitmq_web_stomp插件通过临时队列提供WebSocket能力,同时其连接和释放依赖于心跳机制,过多的临时队列以及过多连接数会导致内存高水位,从而导致节点状态异常。 消减措施 已开启插件的实例,建议参考设置RabbitMQ告警规则,配置相应的告警,提前预知并消减风险。
压测性能为准。 服务端的性能主要跟以下因素相关:队列数、消息堆积、连接数、channel、消费者数、镜像队列、优先级队列、消息持久化和exchange类型等,在选择实例规格时,请根据业务模型压测结果选择。 一条连接最多可以开启2047个channel。 单机版实例可用于测试场景,
RabbitMQ最佳实践一览表 最佳实践 说明 实现网络异常时RabbitMQ客户端自动恢复 本章节提供了客户端重连示例代码,使客户端在网络异常导致连接断开时自动恢复连接,降低网络故障对业务的影响。 实现RabbitMQ节点重启后消费者自动重连 本章节提供了RabbitMQ节点重启后消费者自动重连示
非持久化的Message在重启之后会丢失(经过持久化Queue/Exchange的消息不会自动变为持久化消息)。 持久化消息在尚未完成持久化时,如果服务器重启,消息会丢失。 RabbitMQ AMQP-0-9-1版本Exchange、Queue、Message默认开启持久化。 设置Exchange持久化
实例约束与限制 限制项 约束和限制 版本 当前服务端版本为3.8.35和AMQP-0-9-1。 连接数 RabbitMQ单机和集群实例,不同实例规格的连接数上限不一致,具体限制,请参考产品规格。 通道数 单条连接可以建立的通道数如下: RabbitMQ 3.8.35版本:<= 2047 RabbitMQ
轨迹数据白屏化展示,消息完整的生命周期清晰可见,一目了然。提供强大的索引能力,可根据Queue、消息ID、消息处理耗时等完成不同维度的查询。 消息轨迹信息以文本格式存储在服务器的log文件中,查询和定位问题效率较低。 稳定性 表2 稳定性差异 功能项 AMQP-0-9-1版本 开源RabbitMQ 消息堆积 海量消息堆积能力,高性能不受消息堆积影响。
connection信息,包括客户端IP:Port到服务端IP:Port。 peer_host String 连接的消费者IP peer_port Integer 连接的消费者进程端口号 表6 BindingsDetails 参数 参数类型 描述 source String Exchange名称
管理实例 查看和修改RabbitMQ实例基本信息 查看RabbitMQ实例的运行日志 查看RabbitMQ客户端连接地址 配置RabbitMQ实例标签 配置RabbitMQ实例回收站策略 重置RabbitMQ实例密码 开启RabbitMQ实例插件 导出RabbitMQ实例列表 删除RabbitMQ实例
String 实例内网连接IP地址。 connect_domain_name String 实例内网连接域名。 public_connect_address String 实例公网连接IP地址。 public_connect_domain_name String 实例公网连接域名。 port
访问权限,详情请参见权限管理。 建议配置安全组访问控制,保护您的数据不被异常读取和操作。 租户配置安全组的入方向、出方向规则限制,可以控制连接实例的网络范围,避免DMS for RabbitMQ暴露给不可信第三方,详情请参见配置安全组。安全组入方向规则的“源地址”应避免设置为0.0
String 实例内网连接IP地址。 connect_domain_name String 实例内网连接域名。 public_connect_address String 实例公网连接IP地址。 public_connect_domain_name String 实例公网连接域名。 port
y 参数 参数类型 描述 type String 产品类型。当前产品类型有单机和集群。 product_id String 产品ID。 ecs_flavor_id String 底层资源类型。 billing_code String 账单计费类型。 arch_types Array
String 实例内网连接IP地址。 connect_domain_name String 实例内网连接域名。 public_connect_address String 实例公网连接IP地址。 public_connect_domain_name String 实例公网连接域名。 port
System.out.println("Send message success!"); //关闭信道 channel.close(); //关闭连接 connection.close(); 消费者根据messageID对消息进行幂等处理,示例代码如下: //创建一个以messageID
消费者可以同时订阅同一个队列,队列里的消息分配给不同的消费者。 代理(Broker) 消息中间件的服务节点。 Vhost Vhost是指虚拟主机,用作逻辑隔离,分别管理Exchange、Queue和Binding,使得应用安全地运行在不同的Vhost上,相互之间不会干扰。 Exchange
ty 参数 参数类型 描述 type String 实例类型 product_id String 产品ID。 ecs_flavor_id String 该产品使用的ECS规格。 arch_types Array of strings 支持的CPU架构类型 charging_mode
客户端需要支持自动重连,建议在业务低峰时进行变更。 RabbitMQ AMQP-0-9-1版本单机实例和集群实例在变更规格过程中会有秒级连接闪断,客户端需要支持自动重连,建议在业务低峰时进行变更。 代理采用滚动重启的方式进行实例变更,变更时长和代理数量有关,单个代理的变更时长一