gRPC健康检查应该仅限于gRPC服务吗?

3
关于gRPC健康检查,如果一个gRPC服务和其他需要健康检查的HTTP服务托管在同一端口上,那么grpc.health.v1.Health.Check的响应只应该针对提供的gRPC服务,还是也可以回答其他服务?如果是后者,应该使用什么模型来命名服务?
我之所以问这个问题,部分原因是因为Kubernetes已经有了/healthz模型进行健康检查,并且正在尝试弄清楚是否需要提供给gRPC健康检查,或者可以合并现有的健康检查,例如,
import "google.api.http";
…
rpc Check(HealthCheckRequest) returns (HealthCheckResponse) {
  option (google.api.http) = { get: "/healthz" }
}

这样就可以使用股票gRPC健康检查监视器。

1个回答

1

gRPC健康检查与gRPC服务器共存,因为它本身就是一个gRPC方法。如果gRPC服务器比您的其他服务寿命长或者与其共同命运,那么我认为可以使用gRPC健康检查服务来提供其他服务的状态。

我不知道C++、Java或Go是否官方支持在gRPC服务器和其他服务器之间共享端口。我不确定您考虑的设置是什么,但上面的一般思路适用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接