当GRPC连接状态改变时?

问题描述

    ManagedChannel managedChannel = ManagedChannelBuilder.forAddress("localhost",9090).usePlaintext().build();

// Whats ConnectivityState1 here ?

    Grpc.Stub stub = Grpc.newStub(managedChannel);

// Whats ConnectivityState2 here ?

    stub.method();

// Whats ConnectivityState3 here ?
  1. 在这些阶段 CONNECTING,READY,TRANSIENT_FAILURE,IDLE,SHUTDOWN 中,ConnectivityState 1-2-3会发生什么?

  2. managedChannel.getState(true)managedChannel.getState(false)之间有什么区别?

谢谢。

解决方法

  1. ConnectivityState是基础传输连接的状态,而不是您在代码中检查它的位置。

  2. documentation所述,“如果当前处于空闲状态,它将尝试建立连接”,即没有活动或未决的RPC。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...