check 有很多项,每个项都有修复。check 是一条线,修复是一条线。不要在 check 中发现某个项有问题就进行修复,而是要等 check 完再调用修复。
核心:check 和修复职责分离
check 有很多项,每个项都有修复。
那么:
- check 是一条线;
- 修复是一条线。
不要在 check 中,发现某个项有问题就进行修复,而是要等 check 完,再调用修复。
修复的里面比如也包含 check,但是这不能代替 check 流程。
因为有些情况,只需要 check,最典型的是告警和健康状态。
check 就得响应迅速,迅速告警。
里面掺杂了修复,有几个问题
- 健康状态不好管理:难道项目修复前是不健康,修复后改成健康,那下一个检查项呢?这样变来变去,很不稳定,上层没法用;
- 代码零散:就算在流程里更新健康状态,那得多零散,代码处理也不太好;
- 响应不及时:修复操作有的很耗时,影响 check 的效率。
检测和修复完全的职责分离
健康状态是检测修复。
那么修复的流程,即便修复完成,也不要管理健康状态。
下一次检测流程自然会更新健康状态。
小结
- check 和修复要从大流程上就分开;
- check 是一条线,修复是一条线;
- 不要在 check 中发现某个项有问题就进行修复,要等 check 完再调用修复;
- check 就得响应迅速,迅速告警;
- 检测和修复完全的职责分离,修复完成也不要管理健康状态,下一次检测自然会更新。