grpc服务健康检查最佳实践

https://github.com/grpc/grpc/blob/v1.15.0/doc/health-checking.md



https://github.com/kubernetes/ingress-nginx/blob/master/rootfs/etc/nginx/template/nginx.tmpl#L988-L989



https://segmentfault.com/a/1190000018362469?utm_source=tag-newest



服务器健康检查的代码实现,主要部分如下:



hsrv := health.NewServer()
hsrv.SetServingStatus("", healthpb.HealthCheckResponse_SERVING)
healthpb.RegisterHealthServer(s, hsrv) <!-- more -->


https://blog.csdn.net/zhaominpro/article/details/103128918



https://zhuanlan.zhihu.com/p/136112161



https://studygolang.com/articles/13546



https://blog.csdn.net/Smartershining/article/details/112726823



grpc-health-probe 解决方案
为了标准化上面提到的“exec探针”方法,我们需要:



标准的健康检查“协议”,可以轻松地在任何gRPC服务器中实现。
标准的健康检查“工具”,可以轻松查询健康协议。
得庆幸的是,gRPC有一个标准的健康检查协议。它可以从任何语言轻松使用。生成的代码和用于设置运行状况的实用程序几乎都在gRPC的所有语言实现中提供。



如果在gRPC应用程序中实现此运行状况检查协议,则可以使用标准/通用工具调用此Check()方法来确定服务器状态。



下来你需要的是“标准工具”,它是grpc-health-probe。



图片描述



使用此工具,您可以在所有gRPC应用程序中使用相同的运行状况检查配置。这种方法需要你:



选择您喜欢的语言找到gRPC“health”模块并开始使用它(例如Go库)。
将grpc_health_probe二进制文件打到容器中。
配置Kubernetes“exec”探针以调用容器中的“grpc_health_probe”工具。



https://studygolang.com/articles/18609



https://juejin.cn/post/6844903888298983432



https://pkg.go.dev/github.com/grpc/grpc-go@v1.14.0/health/grpc_health_v1



https://studygolang.com/articles/18609



https://github.com/grpc/grpc/blob/master/doc/health-checking.md



https://blog.csdn.net/Smartershining/article/details/112726823



https://www.cnblogs.com/Paul-watermelon/p/10404651.html



https://git-scm.com/book/zh/v2/Git-%E5%B7%A5%E5%85%B7-%E5%AD%90%E6%A8%A1%E5%9D%97


Category golang