不健康和降级的.NET健康检查状态之间有什么区别

时间:2018-08-26 15:25:55

标签: docker asp.net-core kubernetes .net-core health-monitoring

我有一个在Kubernetes中运行的应用程序。为了利用滚动更新而不造成停机的优势,我必须实施适当的运行状况检查,以便群集可以知道应用程序/容器何时可以处理请求。

我正在尝试使用new ASP.NET Code 2.2 Healthchecks功能。

我应该返回一个具有应用程序状态的Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckResult结构。

此结构具有3个静态方法,可用于返回此状态:

  • 健康
  • 不健康
  • 降级

在哪种情况下应用程序运行不正常,我应该使用“不健康”还是“降级”?一些例子会很好。

1 个答案:

答案 0 :(得分:3)

“降级”检查可以用于确实成功但速度缓慢或不稳定的检查。例如。一个简单的数据库查询确实成功了,但是花费了超过一秒钟的时间。在问题解决之前,将流量转移到另一个实例可能是一个好主意。

“不健康”检查表示该组件完全不起作用。例如。无法建立与Redis缓存的连接。重新启动实例可以解决此问题。

引用博客文章:

  

活动探针失败:应用程序崩溃。你应该   关闭它并重新启动。

     

准备就绪探针失败:应用程序正常,但尚未准备就绪   服务流量。

您可以说“降级”的健康检查映射到“就绪”探针,而“不健康的”检查映射到“活跃度”探针。