Java GRPC ConnectivityState不工作是否正确?
以上代码是GRPC客户端。它与grpc服务器连接。但每次通道状态为空闲时?连接和就绪状态是什么时候?怎么了?需要等待另一个状态。 以下代码在服务器未启动时打印连接状态:瞬时故障,在服务器正常时打印连接状态:就绪。 gRPC版本:1.24.0Java GRPC ConnectivityState不工作是否正确?,java,state,grpc,channel,connectivity,Java,State,Grpc,Channel,Connectivity,以上代码是GRPC客户端。它与grpc服务器连接。但每次通道状态为空闲时?连接和就绪状态是什么时候?怎么了?需要等待另一个状态。 以下代码在服务器未启动时打印连接状态:瞬时故障,在服务器正常时打印连接状态:就绪。 gRPC版本:1.24.0 ManagedChannel managedChannel = ManagedChannelBuilder .forAddress("localhost", 9090)
ManagedChannel managedChannel = ManagedChannelBuilder
.forAddress("localhost", 9090)
.usePlaintext().build();
System.out.println("State: " + managedChannel .getState(false)) // State: IDLE
Grpc.Stub stub = Grpc.newStub(managedChannel);
System.out.println("State: " + managedChannel .getState(false)) // State: IDLE
stub.callMethod();
System.out.println("State: " + managedChannel .getState(false)) // State: IDLE
我想你应该参考这篇文章,它对我没用你使用的是什么版本的GRPCJava?1.30版本的gRPC
ManagedChannel managedChannel = ManagedChannelBuilder
.forAddress("localhost", 9090)
.usePlaintext().build();
ConnectivityState state = channel.getState(true);
while (state == ConnectivityState.IDLE || state == ConnectivityState.CONNECTING) {
state = channel.getState(true);
}
System.out.println("connection state: " + state.toString());