【问题标题】:Proxy load-balancing with GRPC streaming requests使用 GRPC 流式请求的代理负载平衡
【发布时间】:2017-07-13 23:52:09
【问题描述】:

我们使用流式 RPC 将大文件发送到 GRPC 服务器。像这样:

service FileReceiver
{
    rpc addData(stream DataChunk) returns (Empty)
}

在这种情况下是否可以使用代理负载均衡器,这样负载均衡器就不会在流请求中间切换服务器?它会随着客户数量的增加而很好地扩展吗?

【问题讨论】:

    标签: proxy load-balancing grpc


    【解决方案1】:

    HTTP 负载平衡器通常按HTTP 请求 进行平衡。 gRPC 流是单个 HTTP 请求,与流中的消息数量无关。每个客户端都可以定向到不同的后端,因此可以扩展。所以 gRPC 的行为方式是你想要的开箱即用。

    流式 RPC 是有状态的,因此所有消息都必须发送到同一个后端。这对于结果一致性至关重要(例如 reflection),并且有助于提高某些工作负载的性能(例如您的情况)。

    关于可扩展性的一个注意事项:如果流是长期存在的,您可能会有“热点”,其中某些后端具有高比例的流。您的服务可以定期(几分钟或几小时,具体取决于您的需要)关闭流并让客户端重新创建流以重新平衡。

    【讨论】:

      猜你喜欢
      • 2022-07-21
      • 1970-01-01
      • 2020-05-26
      • 2019-10-20
      • 1970-01-01
      • 2018-09-24
      • 2022-01-10
      • 1970-01-01
      • 2018-11-22
      相关资源
      最近更新 更多