如何在Java中从应用程序内部检查grpc服务器就绪性

如何在Java中从应用程序内部检查grpc服务器就绪性,java,grpc,consul,Java,Grpc,Consul,我的一个应用程序暴露GRPC服务时遇到困难。我们开始时遇到的问题是,在执行滚动更新时,由于服务不可用,我们的服务出现了故障,这是意料不到的,因为我们有多个节点,并且正在逐个部署节点 我们正在使用Concur进行服务发现,我们的应用程序逻辑是启动grpc服务(在服务器类上进行方法调用以启动),给予一秒钟的延迟,然后注册到Concur。我们针对这个问题得出的结论是,即使在调用服务器start方法时,它也需要一段时间才能真正开始为RPC调用提供服务。这个延迟应该大于1s延迟,因此我们在服务器实际准备就

我的一个应用程序暴露GRPC服务时遇到困难。我们开始时遇到的问题是,在执行滚动更新时,由于服务不可用,我们的服务出现了故障,这是意料不到的,因为我们有多个节点,并且正在逐个部署节点

我们正在使用Concur进行服务发现,我们的应用程序逻辑是启动grpc服务(在服务器类上进行方法调用以启动),给予一秒钟的延迟,然后注册到Concur。我们针对这个问题得出的结论是,即使在调用服务器start方法时,它也需要一段时间才能真正开始为RPC调用提供服务。这个延迟应该大于1s延迟,因此我们在服务器实际准备就绪之前在concur上注册服务,因此出现错误


我正在寻找的是一种在注册到Consor之前检查服务器准备就绪的方法。这将允许我们仅在服务器实际就绪时才能在服务器上获取RPC调用那么,有人知道在这种情况下有什么有用的方法吗?

对不起,原来服务器已经准备好接收请求了。请求失败实际上是由于超时(在负载平衡器上设置)。DB池(Hikari)最初在服务请求方面花费了更多的时间,因此失败。

您收到了哪些错误?领事进行了健康检查,您可以使用健康检查吗?