Grpc健康检查的实现方式

x33g5p2x  于2021-12-21 转载在 其他  
字(0.7k)|赞(0)|评价(0)|浏览(376)

一:引言

上一篇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 });
    }
}

相关文章