Kotlin / Java grpc检查连接状态

时间:2020-05-06 15:52:38

标签: java kotlin grpc grpc-java

我正在Kotlin中编写一个应用程序以连接到grpc服务器并获取数据。

下面是我的代码段:

channel = ManagedChannelBuilder.forTarget("localhost:25001")
                .usePlaintext()
                .build()

stub = hello.HelloGrpc.newBlockingStub(channel)

我的GRPC服务器关闭,但是我可以看到两个变量的值如下:

for channel = channelManagedChannelOrphanWrapper{delegate=ManagedChannelImpl{logId=1, target=localhost:25001}}
for stub = channelhello.HelloGrpc$HelloBlockingStub@19b843ba

我很困惑,如何检查连接是否未激活。

目前,我在获取值时添加了try catch语句,这使我出错

不可用:io异常

想知道,有什么方法可以检查连接状态并尝试重新连接以断开连接。

1 个答案:

答案 0 :(得分:1)

gRPC automatically attempts re-connection,使用指数补偿。只要继续使用频道,问题解决后错误就会消失。

如果您对频道的当前连接状态感兴趣,可以使用ManagedChannel.getState()