C# 托管服务控制台应用程序的运行状况检查

Health Check For C# Hosted Service Console Application

我有 2 个托管服务,必须检查彼此的健康状况。 我如何在 C# 控制台应用程序(托管服务)中实施健康检查。 检查托管服务健康状况的参数是什么。

如果您可以选择通过 HTTP 进行健康检查,我建议查看 .Net Core 的 built-in 健康检查功能。它在您的应用程序中设置一个 REST 端点,您还可以在其中实施自定义健康检查行为。

参见:https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/health-checks?view=aspnetcore-3.1

从技术上讲,您可以调用一个托管服务的公开运行状况检查 API。

您可以将健康检查端点添加到每个托管服务。然后每个服务都可以访问,为什么 HTTP/REST 和服务 A 可以调用服务 B 和 vice-versa.

的健康检查 API

例如服务 B 然后向 http://service-a-base-url/health 和服务 A 向 http://service-b-base-url/health

发出 http 请求

如果两个服务 运行 在同一台主机上,您可以使用端口过滤,以便每个服务健康检查端点侦听不同的端口。在这两种情况下,您也可以使用 localhost 作为主机名,只是端口不同。另请参阅此答案:

注意:如果这是关于监控您的应用程序,我建议考虑使用一些监控服务的集中监控方法,而不是让您自己的应用程序为监控目的进行健康检查。