消息队列 RabbitMQ Broker 宕机

最近更新时间:2026-06-12 17:39:00

我的收藏

背景

消息队列 TDMQ RabbitMQ 版(TDMQ for RabbitMQ,简称 TDMQ RabbitMQ 版)是一款腾讯自主研发的消息队列服务,支持 AMQP 0-9-1 协议,完全兼容开源 RabbitMQ 的各个组件与概念,同时具备计算存储分离,灵活扩缩容的底层优势。TDMQ RabbitMQ 版拥有极为灵活的路由来适应各类业务的消息投递规则,能有缓冲上游流量压力的能力,保证消息系统的稳定运行。持久化机制确保了 TDMQ RabbitMQ 版的高可靠性。设置 Exchange、Queue、消息的持久化,保证服务重启后元数据与消息内容不丢失。消息采用三副本存储策略,某台物理机故障时,能够实现数据的快速迁移,保证用户数据3个备份可用,服务可用性达99.95%。
为便于用户验证 TDMQ RabbitMQ 在面对可用区级时的容灾能力,智能顾问-混沌演练提供了对 TDMQ RabbitMQ (跨 AZ 实例)可用区级 Broker 宕机故障演练动作,用于模拟真实可用区灾难。通过对 Broker 进行容灾演练,可以验证业务本身的容灾能力,测试持久性机制,评估故障影响范围及时间等。

注意事项

Broker 宕机故障演练动作仅支持对跨可用区部署的 TDMQ RabbitMQ 实例,否则无法进行故障注入。非跨可用区部署实例请升级为跨可用区实例之后进行演练。
若需要对多个实例进行故障注入,建议拆分为多个动作组,每个动作组一个实例进行。
故障注入之后,生产端或消费端可能会出现闪断,请谨慎操作。

演练准备

准备一台可以进行演练的跨可用区部署的 TDMQ RabbitMQ 实例。

步骤一:创建演练

1. 登录 智能顾问控制台 > 系统架构,进入治理模式,点击混沌演练。(详细创建演练方式请参见 使用智能顾问进行混沌演练


2. 点击新建演练,填写演练基本信息,完成后点击下一步


3. 在演练实例中,选择中间件- RabbitMQ,选择后点击搜索添加,添加 RabbitMQ 实例资源。亦可通过架构图添加方式,直接点击架构图上的 RabbitMQ 资源,选择实例进行添加。



4. 完成添加实例后,点击添加动作,演练动作选择 Broker 宕机,然后点击下一步



5. 选择对应的注入可用区,然后点击保存



6. 参数配置完成之后,在全局配置中选择执行方式护栏策略,及添加可观测指标。配置完成后,点击提交,即可完成演练任务创建。

步骤二:执行演练

1. 在执行演练之前,可以通过 消息队列 TDMQ > RabbitMQ > 集群管理 中对应实例的 Web 控制台访问地址进入查看 RabbitMQ 控制台观察。



2. 进入 RabbitMQ 控制台之后,可以看到对应 Broker 的存活状态。



3. 前往演练详情,点击故障动作组中的执行,或下方开始演练,注入故障。


4. 故障注入成功之后,可以点击动作卡片,查看对应的执行详情。可观测到故障成功发起,该实例指定可用区下的 Broker 已经宕机离线。


5. 前往 RabbitMQ Web 控制台,可以看到已经有一个 Broker 节点宕机处于未运行状态。



也可从 腾讯云 TDMQ > RabbitMQ > 集群管理 页面看到当前实例处于异常状态,提示有 Broker 未启动。


6. 执行恢复动作,点击恢复动作的执行按钮。



7. 恢复执行需要一定的时间,待恢复之后,通过 RabbitMQ Web 控制台可以观察到宕机的 Broker 节点已经重新启动。



腾讯云 TDMQ > RabbitMQ > 集群管理 可看到当前实例恢复正常状态。