一、步骤1:演练准备
·一台 MongoDB 实例(用于模拟实例整体不可用,验证业务对 MongoDB 依赖的容灾与降级能力)。MongoDB 实例的创建和连接,请参见如下文档:
·创建 MongoDB 实例
·连接 MongoDB 实例
·一台 CVM 实例(仅用于连接数据库实例,你也可以使用其他方式连接,例如 mongosh 客户端等)。
二、步骤2:演练编排
1. 登录 智能顾问,选择需要演练的架构。
2. 进入智能顾问混沌演练插件,单击新建演练。填写演练信息,选择演练目标数据库 MongoDB 实例。
·动作组描述:可填写 mongodb 整体不可用。
·演练实例:选择数据库 / MongoDB,并勾选目标 MongoDB 实例。
·注入范围:支持配置“全部注入”或“按比例/数量随机注入”。
·演练动作:选择添加动作,并为故障动作配置动作参数信息(如主实例、只读实例等)。
3. 动作参数配置完成后,单击提交,完成演练创建。
三、步骤3:执行演练
1. 正常连接验证:使用 CVM 通过 mongosh 连接 MongoDB Primary 节点,连接成功后会显示客户端与服务器版本信息(如 Using MongoDB: 7.0.12 / Using Mongosh: 2.3.8),并进入 test> 交互提示符。如下:
2. 触发故障动作:进入演练详情,在演练动作组中,点击执行,开始执行演练。
3. 复现不可用现象:待故障动作注入之后,重新使用 mongosh 发起连接,连接会失败,报错信息类似:
MongoServerSelectionError: Socket 'connect' timed out after 30021ms (connectTimeoutMS: 30000)
表明 MongoDB 实例已不可用,业务读写出现中断。
4. 执行恢复动作:在演练详情中点击恢复动作(或等待自动恢复),触发 MongoDB 实例恢复流程。
5. 重新验证:恢复完成后,重新使用 mongosh 发起连接,可成功连接并进入交互提示符,说明实例已恢复可用。