文档中心>混沌演练平台>故障动作库>消息队列>消息队列 RabbitMQ Broker宕机

消息队列 RabbitMQ Broker宕机

最近更新时间:2024-05-14 11:24:51

我的收藏

背景

消息队列 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. 单击跳过,新建空白演练


4. 填写完基本信息后,进入演练对象配置,对象类型选择云资源下的 RabbitMQ,然后单击添加实例。单击添加实例后,会列出目标地域下所有的 RabbitMQ 实例信息,可以根据实例 ID 以及实例名称筛选符合要求的实例。



5. 选择目标实例后,单击立即添加,即可添加演练动作。


6. 演练动作选择 Broker 宕机,然后单击下一步


7. 选择对应的注入可用区,测试实例选择对广州四区的 Broker 进行故障注入,然后点击确定


8. 单击下一步,进入全局配置,全局配置请参见 快速入门


9. 确认无误后,单击提交。



10. 可单击跳转演练详情开始演练。




步骤二:执行演练

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 > 集群管理 可看到当前实例恢复正常状态。