如何让我的.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)的健康检查

+0

所以,如果我添加https://www.google.nl/应该检查https://www.google。 nl/hc?这很奇怪,因为我获得了“健康”状态并且https://www.google.nl/hc返回了404。 – Daan

+0

如果响应状态代码在成功范围(200-299)内,AddUrlCheck将返回健康状态,否则返回Unhealthy –

+0

那么,为什么我在使用google.nl时获得健康状态呢? H – Daan