Stub 在通道上为多线程 gRPC 客户端使用单个连接?
Stub uses a single connection over the channel for multithreaded gRPC Client?
我是 gRPC 的新手,据我了解,Channels/Stubs 是线程安全的,但是存根是否对所有线程使用单个连接?如果是,吞吐量会不会更少,如果不是,我需要创建一个连接池吗?
存根是轻量级的; Channel 保持连接。 Channel 是到端点的虚拟连接;它可能有零个或多个 TCP 连接。
在非常高的吞吐量下,使用多个连接可能是有益的。在短期内,您可以通过使用多个渠道来实现这一目标。但是,理想情况下,您会使用单个 Channel 并使用 LoadBalancer,该 LoadBalancer 使用到同一端点的多个连接。这在今天不太可能;希望在 1.2 中它会得到支持,我们将提供一个方便的实现。
我是 gRPC 的新手,据我了解,Channels/Stubs 是线程安全的,但是存根是否对所有线程使用单个连接?如果是,吞吐量会不会更少,如果不是,我需要创建一个连接池吗?
存根是轻量级的; Channel 保持连接。 Channel 是到端点的虚拟连接;它可能有零个或多个 TCP 连接。
在非常高的吞吐量下,使用多个连接可能是有益的。在短期内,您可以通过使用多个渠道来实现这一目标。但是,理想情况下,您会使用单个 Channel 并使用 LoadBalancer,该 LoadBalancer 使用到同一端点的多个连接。这在今天不太可能;希望在 1.2 中它会得到支持,我们将提供一个方便的实现。