如何让我的.NET Core微服务执行递归健康检查?
问题描述:
As described我可以这样做:如何让我的.NET Core微服务执行递归健康检查?
checks.AddUrlCheck(Configuration["OrderingUrl"])
,使我的健康检查依赖于其他微服务的健康。但是,我不只是想做一个网址检查。我想对其他Microservice进行全面的健康检查(所以它也会检查其他Microservice的数据库依赖关系等)。这可能类似于,
checks.AddFullMicroserviceIncludingDatabaseAndUrlCheck(Configuration["OrderingUrl"])
(低估)。
如何在我的.NET Core微服务中做这样的递归健康检查?
答
在你的微服务中,你可以做任何你想做的事情。比方说,我们有两个微服务一个和乙,我们想要监控他们的健康检查:
的microService一个
该微服务使用SQL Server,所以我们要检查SQL连接。
services.AddHealthChecks(checks =>
{
checks.AddSqlCheck("ServiceA_DB", Configuration["ConnectionString"]);
});
的microService乙
该微服务使用SQL Server太多,但它也使用了一些其他服务(例如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)的健康检查
所以,如果我添加https://www.google.nl/应该检查https://www.google。 nl/hc?这很奇怪,因为我获得了“健康”状态并且https://www.google.nl/hc返回了404。 – Daan
如果响应状态代码在成功范围(200-299)内,AddUrlCheck将返回健康状态,否则返回Unhealthy –
那么,为什么我在使用google.nl时获得健康状态呢? H – Daan