2017-09-26 32 views
0

As described我可以這樣做:如何讓我的.NET Core微服務執行遞歸健康檢查?

checks.AddUrlCheck(Configuration["OrderingUrl"]) 

,使我的健康檢查依賴於其他微服務的健康。但是,我不只是想做一個網址檢查。我想對其他Microservice進行全面的健康檢查(所以它也會檢查其他Microservice的數據庫依賴關係等)。這可能類似於,

checks.AddFullMicroserviceIncludingDatabaseAndUrlCheck(Configuration["OrderingUrl"])(低估)。

如何在我的.NET Core微服務中做這樣的遞歸健康檢查?

回答

1

在你的微服務中,你可以做任何你想做的事情。比方說,我們有兩個微服務一個,我們想要監控他們的健康檢查:

的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