【问题标题】:How to allow gRPC Channel in Java to use multiple connections?如何允许 Java 中的 gRPC Channel 使用多个连接?
【发布时间】:2021-10-02 03:12:21
【问题描述】:
io.grpc.Channel 类的

Javadoc 提到,

一个通道可以有零个或多个实际连接到 基于配置、负载等的端点

我的问题是,如何启用这个配置,让 gRPC 的通道在需要时打开多个实际连接?

更新: 根据this Microsoft Doc,只建立了一个TCP连接!

【问题讨论】:

    标签: grpc http2 grpc-java


    【解决方案1】:

    这是默认行为,无需配置。有关 gRPC 最佳实践的一些提示,请参阅 https://grpc.io/docs/guides/performance/,其中简要介绍了通道和 HTTP/2 连接限制。

    【讨论】:

    • 这份文件本身对我来说似乎有点混乱!它提到了这两件事 - 每个 gRPC 通道使用 0 个或多个 HTTP/2 连接 - 使用 gRPC 通道池在多个连接上分配 RPC
    • 所以回到同一个问题,谁管理这些多个连接!如果我们,那么我是否必须使用某种 RoundRobin 方式将 RPC 发送到通道,或者如果是 gRPC,那么如何?
    【解决方案2】:

    我认为 grpc-java 或 grpc-go 客户端中没有现成的功能(或配置)。但是,您可以探索 grpc-dotnet 客户端,我认为他们找到了workaround(即使他们不推荐使用)。

    谁管理这些多个连接

    在 grpc-java 中,通道本身管理 HTTP/2 连接。我们无权访问这些连接(如果我们想配置它们)。

    可能有一种可能的解决方法来实现相同的 - “创建多个渠道”。见this

    【讨论】:

      猜你喜欢
      • 2017-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-04
      • 1970-01-01
      • 1970-01-01
      • 2018-09-12
      • 1970-01-01
      相关资源
      最近更新 更多