问题描述
我在 ec2 上部署了一个简单的 grpc greeter 应用程序,并实现了健康检查 proto 文件,请参见此处:https://github.com/grpc/grpc/blob/master/doc/health-checking.md
当我启动 kestrel 服务器时,我可以毫无问题地连接到欢迎服务。当我分配一个目标组并设置健康检查时,它失败了。 Kestrel 服务器使用 http/http/2 和 http/3 侦听端口 5000,使用 https 和自签名证书侦听端口 5001。
Targetgroup 配置为 https 端口 5001 和 grpc 协议。健康检查路径设置为/grpc.health.v1.Health/Check
成功返回码设置为0-99只是为了测试。应该是0,因为默认的成功码是0。
是我的路径错误还是我的实现?这是我的实现:
public class HealthService : Health.HealthBase
{
private readonly ILogger<HealthService> _logger;
public HealthService(ILogger<HealthService> logger)
{
_logger = logger;
}
public override Task<HealthCheckResponse> Check(HealthCheckRequest request,ServerCallContext context)
{
context.Status = Status.DefaultSuccess;
return Task.Fromresult( new HealthCheckResponse() { Status = HealthCheckResponse.Types.ServingStatus.Serving });
}
public override Task Watch(HealthCheckRequest request,IServerStreamWriter<HealthCheckResponse> responseStream,ServerCallContext context)
{
return base.Watch(request,responseStream,context);
}
}
感谢您的帮助或建议。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)