一:引言
上一篇consul已经介绍了手动的健康检查实现方式,这边就不多说了
二:健康检查实现
不用手动创建 proto 文件,直接安装官方的现成组件,这里面包含了通过上面的标准 proto 文件生成的类。所以重写实现类就行了。
通过 Nuget 安装 Grpc.HealthCheck
然后添加一个实现类 HealthCheckService继承 HealthServiceImpl 最后重写方法,然后主要代码都适合上面一致的:
public class HealthCheckService:HealthServiceImpl
{
public override Task<HealthCheckResponse> Check(HealthCheckRequest request, ServerCallContext context)
{
//TODO:检查逻辑
return Task.FromResult(new HealthCheckResponse() { Status = HealthCheckResponse.Types.ServingStatus.Serving });
}
public override async Task Watch(HealthCheckRequest request, IServerStreamWriter<HealthCheckResponse> responseStream, ServerCallContext context)
{
//TODO:检查逻辑
await responseStream.WriteAsync(new HealthCheckResponse()
{ Status = HealthCheckResponse.Types.ServingStatus.Serving });
}
}