在 .Net 也有提供健康檢查的機制
在 Server 端設定如下:
//...
// 註冊健康檢查(可自訂多種檢查)
builder.Services.AddHealthChecks()
.AddCheck("self", () => HealthCheckResult.Healthy("Healthy!"));
// 註冊 gRPC 健康檢查服務
builder.Services.AddGrpcHealthChecks();
//...
// 映射 gRPC 健康檢查端點
app.MapGrpcHealthChecksService(); // 這是 gRPC 標準健康檢查
app.MapHealthChecks("/healthz"); // 提供 HTTP 健康檢查 (方便 Kubernetes、HTTP)
除了一次性的以外,健康檢查還有提供 Watch 的功能。以串流的形式提供
如下面 Postman 呼叫:
加入其他的健康檢查,就可以監測其他類服務
builder.Services.AddGrpcHealthChecks()
.AddCheck("self", () => HealthCheckResult.Healthy())
.AddCheck<DatabaseHealthCheck>("database"); // 加入資料庫檢查