我们正在使用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调用另一个微服务的测试。使用相同的代码路径成功后续调用成功。所有微服务都已启动并运行。
有什么想法吗?
答案 0 :(得分:1)
至少在我看来,此问题是io.grpc(1.4.0)和io.netty(4.1.27.FINAL)之间的版本不匹配。我必须在build.gradle文件中将io.netty版本明确设置为4.1.11.FINAL,突然异常消失了。
不幸的是,我找不到有关哪个版本的grpc和哪个版本的netty的任何信息。
希望对您有帮助。