gRPC中的通道/存根是否是线程安全的

jul*_*ius 17 java thread-safety grpc

当从Java中使用GRPC,我可以缓存存根(客户端),并呼吁他们在多线程环境或者是渠道线程安全的,可以放心地缓存?

如果网络中断,我应该重新创建频道还是足够智能重新连接?我在http://www.grpc.io/docs/上找不到相关信息

谢谢

Eri*_*son 22

回答第一个问题:

通道是线程安全的; io.grpc.Channel标有@ThreadSafe注释.存根也是线程安全的,这就是重新配置创建新存根的原因.

回答第二个问题:

如果存在网络中断,则无需重新创建通道.该通道将重新连接指数退避,大致如连接退避文档所述.Java不会100%符合该算法,因为它不会在以后的重试中增加连接超时.(不要与实现的指数退避相混淆.)