什么时候使用过滤器运行状况检查?

时间:2020-09-08 09:56:55

标签: c# .net .net-core health-monitoring health-check

我正在阅读这篇文章https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/health-checks?view=aspnetcore-3.1#filter-health-checks,无法看到使用过滤器运行状况检查的实际用例。在现实世界中,我什么时候使用它?谢谢!

2 个答案:

答案 0 :(得分:1)

在您共享的同一页面中,您可以看到以下内容:

运行状况探针可以由容器协调程序和负载平衡器用来检查应用程序的状态。例如,容器协调器可以通过停止滚动部署或重新启动容器来响应运行状况检查失败。负载平衡器可能会通过将流量从发生故障的实例路由到运行状况良好的实例来对运行状况不佳的应用做出反应。

可以监视内存,磁盘和其他物理服务器资源的使用状况是否正常。

运行状况检查可以测试应用程序的依赖性,例如数据库和外部服务端点,以确认可用性和正常运行。

如您所见,有多种不同类型的健康检查。

我可以看到两个原因:

  1. 不同的报告目的
  • 将特定监视客户端的项目分组。一个可能是系统部门,一个可能是数据库部门
  1. 性能原因
  • 评估数据库的运行状况可能需要一些时间。您可能需要在夜间升高这些,而其他则每5分钟升高一次。过滤将执行适当的过滤。

答案 1 :(得分:0)

可以使用多种健康检查类型。您提供的链接中提到了大多数。 一些比较流行的方法包括检查数据库连接或端点是否可用。

对于现实生活中的情况:

我将我的服务添加到kubernetes。如果您不知道kubernetes是什么,那么它就是跟踪我的服务的家伙。现在,在kubernetes中,您可以指定运行状况检查的端点,以便kubernetes可以收集信息以了解应用程序的状态。可以将kubernetes配置为根据您的健康状况进行特定的操作。 例如,幼稚要求您对服务进行一般的健康检查。假设数据库连接和您通过端点进行通信的其他服务。每隔一段时间,它就会降级(无法执行我需要做的事情),因为什么都没用。到那时,我可以预先确定是否有能力关闭或重启服务。

现在,如果您将服务扩展到相互通信的多个服务以及多个数据库。然后,您将看到如何使用kubernetes和运行状况检查对整个系统进行良好的监视。 您可以想象,某些运行状况检查的复杂性也会增加。

这是当今的现实生活,对微服务系统进行健康检查。真的很有帮助。

我希望这对您有帮助:D