如何让我的.NET Core微服务进行递归健康检查?

时间:2017-09-26 19:42:53

标签: asp.net-core microservices health-monitoring

As described我能做到:

raise

使我的健康检查取决于其他微服务的健康状况。但是,我不只是想进行网址检查。我想对其他微服务进行全面的健康检查(因此它还将检查其他微服务的数据库依赖性等)。这可能是,

checks.AddUrlCheck(Configuration["OrderingUrl"]) (假设)。

如何在.NET Core微服务中进行这样的递归健康检查?

1 个答案:

答案 0 :(得分:1)

在你的微服务中,你可以做任何你想做的事。假设我们有两个微服务 A B ,我们希望监控他们的健康检查:

微服务A

这个微服务使用SQL Server,所以我们要检查SQL连接。

services.AddHealthChecks(checks =>
{
    checks.AddSqlCheck("ServiceA_DB", Configuration["ConnectionString"]);
});

微服务B

这个微服务也使用SQL服务器,但它也使用其他一些服务(例如REST API),所以我们要检查SQL连接和REST API

services.AddHealthChecks(checks =>
{
    checks.AddUrlCheck(Configuration["RequiredServiceUrl"]);
    checks.AddSqlCheck("ServiceB_DB", Configuration["ConnectionString"]);
});

网络状态

最后,我们有一些Web应用程序监视这两个微服务

services.AddHealthChecks(checks =>
{
    checks.AddUrlCheck(Configuration["ServiceAUrl"]);
    checks.AddUrlCheck(Configuration["ServiceBUrl"]);
});

这意味着如果我导航到http://webstatus/hc(运行状况检查页面),系统将检查http://serviceA/hc(它检查db)和http://serviceB/hc(它检查db和rest api)。

或者您可以看到每个微服务的健康状况检查,如there所示(图10-8)