微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

gRPC-累积来自多个客户端的请求

如何解决gRPC-累积来自多个客户端的请求

假设我有多个客户端将请求发送到服务器(gRPC服务)。我希望我的服务器能够收集,说8个请求,立即处理这些请求,然后仅将结果发送回客户端。我不确定如何使用GRPC功能来做到这一点,或者即使有可能还是我需要其他东西,我也不知道。

上下文:我的用例来自为GPU上的神经网络提供服务。在这种情况下,批处理多个请求的输入,进行一次推理并将结果发送回,而不是对每个输入进行一次推理,效率更高。

解决方法

至少3个选项。这里是按复杂度递增的顺序:

  1. 客户端使用其数据调用服务器。服务器以批号响应。然后,客户使用批号进行“完成了吗?”针对服务器的RPC。最简单的方法,但使用轮询并且浪费更多。

  2. 客户端使用其数据调用服务器。服务器以一条消息流进行响应,以批处理的状态更新客户端..工作,正在工作,正在工作,已完成[结果]。优点是在下面的#3中显式表示的隐式“回调”。缺点是,如果您不太关心中间状态,则流的冗余。

  3. 客户端使用其数据和回调地址来调用服务器。服务器(作为gRPC客户端)使用回调在客户端(作为gRPC服务器)上进行RPC。最复杂,也可能不必要地使用#1和#2。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。