你什么时候使用过滤器健康检查?

When would you use filter health checks?

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

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

Health probes can be used by container orchestrators and load balancers to check an app's status. For example, a container orchestrator may respond to a failing health check by halting a rolling deployment or restarting a container. A load balancer might react to an unhealthy app by routing traffic away from the failing instance to a healthy instance.

Use of memory, disk, and other physical server resources can be monitored for healthy status.

Health checks can test an app's dependencies, such as databases and external service endpoints, to confirm availability and normal functioning.

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

我可以看出两个原因:

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

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

至于现实生活中的情况:

我将我的服务添加到 kubernetes。如果您不知道 kubernetes 是什么,请将其视为跟踪我的服务的人。现在,在 kubernetes 中,您可以指定健康检查的端点,以便 kubernetes 可以收集有关您的应用程序状态的信息。 kubernetes 可以配置为执行与健康检查状态相关的特定操作。 例如,kubernities 要求对您的服务进行一般健康检查。假设数据库连接和您通过端点通信的另一项服务。在某个时间间隔,它会变得降级(无法做我需要它做的事情)状态,因为没有任何工作。那时我可以预先设置 kubernities 以关闭服务或重新启动服务。

现在,如果您将服务扩展到相互通信和多个数据库的多个服务。然后你可以看到如何使用 kubernetes 和健康检查来保持对整个系统的良好监控。 正如您可以想象的那样,一些健康检查的复杂性也会增加。

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

希望对你有帮助:D