调试Java gRPC+;扁平缓冲器

调试Java gRPC+;扁平缓冲器,java,grpc,flatbuffers,Java,Grpc,Flatbuffers,当没有异常或日志记录时,调试gRPC通信的最佳方法是什么? 调用在我的日志中只返回processRequest,但从未收到响应。 我看到一个TLS连接到我的本地主机后端服务器,但那里也没有日志。 它一定在做什么,因为每当我从我的go后端服务器删除h2时,我都会收到异常 公共类GRPCClient { 专用最终管理通道; 私有最终ProxyGrpc.ProxyBlockingStub blockingStub; 公共GRPCClient(最终SSLSocketFactory sslFactory、

当没有异常或日志记录时,调试gRPC通信的最佳方法是什么? 调用在我的日志中只返回
processRequest
,但从未收到响应。 我看到一个TLS连接到我的本地主机后端服务器,但那里也没有日志。 它一定在做什么,因为每当我从我的go后端服务器删除
h2
时,我都会收到异常

公共类GRPCClient
{
专用最终管理通道;
私有最终ProxyGrpc.ProxyBlockingStub blockingStub;
公共GRPCClient(最终SSLSocketFactory sslFactory、最终字符串主机、最终int端口)
{
这个(
OkHttpChannelBuilder
.forAddress(主机、端口)
.connectionSpec(connectionSpec.MODERN_TLS)
.sslSocketFactory(SSL工厂)
.keepAliveTime(10,时间单位:分钟)
.keepAliveTimeout(10,时间单位:分钟)
.useTransportSecurity()
.build()
);
System.out.printf(“将代理请求中继到%s:%d%n”,主机,端口);
}
GRPCClient(ManagedChannel频道)
{
this.channel=channel;
this.blockingStub=ProxyGrpc.newBlockingStub(通道);
}
公共字节[]shipRequest(最终字符串协议、最终字符串主机、最终int端口、最终字节[]消息)
{
FlatBufferBuilder=新的FlatBufferBuilder(4);
int protoOffset=builder.createString(协议);
int hostOffset=builder.createString(主机);
int requestOffset=builder.createByteVector(消息);
finish(ProxyRequest.createProxyRequest(builder、protoOffset、hostOffset、port、requestOffset));
ProxyRequest=ProxyRequest.getRootAsProxyRequest(builder.dataBuffer());
proxy.ProxyResponse响应=null;
试一试{
System.out.println(“processRequest”);
response=blockingStub.processRequest(request);//这永远不会返回?
System.out.println(“processRequest done:+response.toString());
}捕获(例外e){
System.err.println(“无法将grpc请求发送到代理:+e.toString()+”+e.getCause());
}
if(null==响应){
返回新字节[0];
}
返回response.responseAsByteBuffer().array();
}
}
我不太明白“…每当我从我的go后端服务器上删除h2时。”而且,看起来TLS握手失败,因为服务器不喜欢来自客户端的内容。如果您能够提高服务器上的日志记录级别,并获得良好的日志记录。在客户端,如果连接失败,那么您应该能够在客户端日志中看到此类失败。尝试增加客户端的日志记录级别。