大促前把推荐降级开关打开,配置中心显示已下发,八台实例里只有两台日志出现 degrade=true。剩下六台继续调下游,下游 QPS 还是 9000,一点没降。第一次遇到会往复杂处想,其实漏掉的多是个小前提。
for ip in 10.0.1.{11..18}; do
curl -s http://$ip:8081/actuator/env/degrade.switch | jq -r '.property.value'
done
开关存在本地缓存里,配置监听只在启动时注册了一次,运行中热更新没有回调。有几台是前一天扩容出来的,加载的还是旧版配置快照。这一点先确认清楚,后面就不用反复试。
「降级开关未全局生效」这类改动最怕改一半,回滚脚本先准备好,再动生产。新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。
具体做法是,确认开关读取走的是配置中心长轮询 不是打包进镜像的配置文件;在开关变更处加实例维度的日志 打上 instanceId 和版本号;补一个定时拉取兜底 每 30 秒对一次开关值;变更后逐台查 actuator 的 env 确认生效。
改完照着核一遍,八台实例的开关值全部为 true,下游 QPS 在 1 分钟内从 9000 降到 2000 以下。
