java - 我是否需要为多线程 Java GRPC (1.1.2) 客户端汇集 ManagedChannel 实例?

标签 java grpc grpc-java

长话短说

grpc-java 的 ManagedChannel 是否有隐式连接池,或者 ManagedChannel 实例的池是否由用户负责?


所以,我使用的是 java grpc 1.1.2 和 protoc 3.2.0。在我看来,grpc 为客户端提供的连接池没有隐式支持(截至目前)。然而,似乎 grpc 中连接的抽象,即 ManagedChannel 对象确实适用于多个 TCP 连接。那是对的吗?如果是这样,ManagedChannel 是否带有连接池?如果是这样的话,我可能不必担心连接池,因为 channel 是线程安全的,而且我可以简单地在我的客户端中使用单个 ManagedChannel 实例。但是,如果需要的话,我可能确实也必须合并这些 channel 对象以获得更大的吞吐量。 grpc 本身是否有这样的实现( channel 池)可以为我做这件事?

最佳答案

是的,ManagedChannel 做连接池,你只需要一个。它会根据需要自动创建和销毁连接。

关于java - 我是否需要为多线程 Java GRPC (1.1.2) 客户端汇集 ManagedChannel 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42320492/

相关文章:

go - 用于服务间通信的基于 gRPC 的微服务架构

go - 如何正确运行 evans(gRPC 客户端)?

java - 我们应该使用什么 gRPC 监控和 grpc-java 指标?

java - grpc v1.34.1 的客户端负载均衡,不推荐使用 nameResolverFactory

java - Spring Boot中通过读取文件进行操作

java - ImmutablePair 和 Pair 编译错误在反编译类中工作

java - 如何只列出指定目录中的文件夹?

go - 如何在 gRPC Protobuf 中创建接口(interface)类型?

java - Spring 事务注解

grpc - 如何让 gRPC 服务器和客户端处于同一进程以实现双向通信(不是服务器/客户端流)