本文目录#

为什么要针对数据库做混沌实验#

数据库是分布式系统的核心依赖,网络抖动、主从切换、慢查询都可能引发应用雪崩。通过混沌实验提前暴露问题,完善超时、重试、熔断策略。

常见实验场景#

  • 网络延迟:在数据库 Pod/节点注入 200~500ms 延迟;
  • 连接中断:模拟 TCP reset、端口关闭;
  • 主从切换:触发 RDS/CloudSQL failover,验证写入一致性;
  • 慢查询:使用 Proxy 模拟长事务或锁等待;
  • 磁盘 IO 限制:降低 IOPS 观察影响。

工具#

  • Chaos Mesh、LitmusChaos:支持 MySQL/PostgreSQL 故障;
  • tc/netem:模拟延迟、丢包;
  • ProxySQL / PgBouncer:模拟连接错误;
  • 云厂商 FIS(AWS Fault Injection Simulator)。

应用侧改进#

  • 设置 HikariCP 超时与最大生命周期,防止连接泄漏;
  • 明确重试策略与幂等设计;
  • 与 Feature Flag 配合控制写请求降级;
  • 指标:数据库错误率、延迟、连接数。

自检清单#

  • 是否在低风险环境演练并设置自动恢复?
  • 是否记录实验指标、告警触发情况?
  • 是否更新 runbook,确保故障时有标准处理流程?

参考资料#


本作品系原创,采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,转载请注明出处。