Amazon EC2 目标组 Grpc 运行状况检查不起作用

问题描述

我在 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 (将#修改为@)