是通道/在GRPC存根线程安全

问题描述 投票:13回答:1

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

如果有网络中断,我应该重新创建渠道,或者是足够聪明的重新连接?我找不到上http://www.grpc.io/docs/相关信息

谢谢

java thread-safety grpc
1个回答
21
投票

回答第一个问题:

渠道是线程安全的; io.grpc.Channel标有@ThreadSafe注解。存根也是线程安全的,这就是为什么重新配置创建一个新的存根。

回答第二个问题:

如果有网络中断,则无需重新创建通道。该信道将与指数退避重新连接,大致由connection backoff文档说明。 Java没有100%符合这一算法,因为它不会增加后重试连接超时。 (不要与指数退避,这是实现相混淆。)

© www.soinside.com 2019 - 2024. All rights reserved.