check 有很多项,每个项都有修复。check 是一条线,修复是一条线。不要在 check 中发现某个项有问题就进行修复,而是要等 check 完再调用修复。

核心:check 和修复职责分离

check 有很多项,每个项都有修复。

那么:

  • check 是一条线;
  • 修复是一条线。

不要在 check 中,发现某个项有问题就进行修复,而是要等 check 完,再调用修复。

修复的里面比如也包含 check,但是这不能代替 check 流程。

因为有些情况,只需要 check,最典型的是告警和健康状态。

check 就得响应迅速,迅速告警。

里面掺杂了修复,有几个问题

  1. 健康状态不好管理:难道项目修复前是不健康,修复后改成健康,那下一个检查项呢?这样变来变去,很不稳定,上层没法用;
  2. 代码零散:就算在流程里更新健康状态,那得多零散,代码处理也不太好;
  3. 响应不及时:修复操作有的很耗时,影响 check 的效率。

检测和修复完全的职责分离

健康状态是检测修复。

那么修复的流程,即便修复完成,也不要管理健康状态。

下一次检测流程自然会更新健康状态。

小结

  • check 和修复要从大流程上就分开;
  • check 是一条线,修复是一条线;
  • 不要在 check 中发现某个项有问题就进行修复,要等 check 完再调用修复;
  • check 就得响应迅速,迅速告警;
  • 检测和修复完全的职责分离,修复完成也不要管理健康状态,下一次检测自然会更新。