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

时间:2020-08-07 05:54:50

标签: c# asp.net-core-hosted-services health-check

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

1 个答案:

答案 0 :(得分:2)

如果您可以选择通过HTTP运行状况检查,则建议研究.Net Core的内置健康检查功能。它在您的应用程序中设置了REST端点,您还可以在其中实现自定义的运行状况检查行为。

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

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

您可以将运行状况检查终结点添加到每个托管服务。这样,每个服务都可以到达,为什么HTTP / REST和服务A可以调用服务B的运行状况检查API,反之亦然。

例如然后,服务B向http:// service-a-base-url / health发出http请求,向服务A发出http:// service-b-base-url / health

如果两个服务都在同一主机上运行,​​则可以使用端口筛选,以便每个服务运行状况检查端点侦听不同的端口。在两种情况下,只要端口不同,您都可以使用 localhost 作为主机名。另请参见以下答案:https://stackoverflow.com/a/57906886/7730554

注意:如果这是关于监视应用程序的,我建议考虑通过使用一些监视服务而不是让您自己的应用程序出于监视目的而进行运行状况检查的集中监视方法。