As described我能做到:
raise
使我的健康检查取决于其他微服务的健康状况。但是,我不只是想进行网址检查。我想对其他微服务进行全面的健康检查(因此它还将检查其他微服务的数据库依赖性等)。这可能是,
checks.AddUrlCheck(Configuration["OrderingUrl"])
(假设)。
如何在.NET Core微服务中进行这样的递归健康检查?
答案 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)