如何让我的 .NET Core 微服务执行递归健康检查?
How can I make my .NET Core microservice do a recursive health check?
As described我能做到:
checks.AddUrlCheck(Configuration["OrderingUrl"])
让我的健康检查依赖于其他微服务的健康。但是,我不只是想做一个 url 检查。我想对另一个微服务进行全面的健康检查(因此它也会检查另一个微服务的数据库依赖性等)。这可能是这样的,
checks.AddFullMicroserviceIncludingDatabaseAndUrlCheck(Configuration["OrderingUrl"])
(假设)。
如何在我的 .NET Core 微服务中进行这种递归健康检查?
在你的微服务中,你可以做任何你想做的事。假设我们有两个微服务 A 和 B,我们想监控它们的健康检查:
微服务 A
此微服务使用 SQL 服务器,因此我们将检查 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
(它检查数据库)和 http://serviceB/hc
(它检查数据库并休息 api).
或者您可以可视化每个微服务的健康检查,如图所示there(图 10-8)
As described我能做到:
checks.AddUrlCheck(Configuration["OrderingUrl"])
让我的健康检查依赖于其他微服务的健康。但是,我不只是想做一个 url 检查。我想对另一个微服务进行全面的健康检查(因此它也会检查另一个微服务的数据库依赖性等)。这可能是这样的,
checks.AddFullMicroserviceIncludingDatabaseAndUrlCheck(Configuration["OrderingUrl"])
(假设)。
如何在我的 .NET Core 微服务中进行这种递归健康检查?
在你的微服务中,你可以做任何你想做的事。假设我们有两个微服务 A 和 B,我们想监控它们的健康检查:
微服务 A
此微服务使用 SQL 服务器,因此我们将检查 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
(它检查数据库)和 http://serviceB/hc
(它检查数据库并休息 api).
或者您可以可视化每个微服务的健康检查,如图所示there(图 10-8)