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

消息队列 RabbitMQ Broker宕机

最近更新时间:2024-07-15 18:09:01

我的收藏

背景

消息队列 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. 选择对应的注入可用区,然后点击确定



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