grpc给出“内部:连接因未知原因而关闭”

问题描述 投票:2回答:1

我们正在使用grpc进行微服务间通信。我们使用的是grpc版本:1.2.0。对于特定测试,我们一直看到来自一个微服务的错误:

io.grpc.StatusRuntimeException: INTERNAL: Connection closed with unknown cause
at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:141)
at io.grpc.stub.ServerCalls$1$1.onHalfClose(ServerCalls.java:148)
at io.grpc.internal.SerializingExecutor$TaskRunner.run(SerializingExecutor.java:152)
at io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:227)
at io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:208)

这只发生在前几次调用或第一次尝试使用grpc调用另一个微服务的测试中。使用相同的代码路径成功后续调用成功。所有微服务都已启动并运行。

有任何想法吗?

microservices grpc grpc-java
1个回答
1
投票

至少在我的情况下,这个问题是io.grpc(1.4.0)和io.netty(4.1.27.FINAL)之间的版本不匹配。我必须在我的build.gradle文件中将io.netty版本显式设置为4.1.11.FINAL,突然异常消失了。

不幸的是,我找不到任何关于哪个版本的grpc与哪个版本的netty一起使用的信息。

我希望这可以帮助你。

© www.soinside.com 2019 - 2024. All rights reserved.