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