gpt4 book ai didi

grpc - grpc 客户端和服务端的共享内存

转载 作者:行者123 更新时间:2023-12-05 05:18:35 28 4
gpt4 key购买 nike

我的项目是读取服务器中的图像,进行一些处理,然后将整个图像传递给客户端。客户端占用图像并进行更多处理,并将一些输出值返回给服务器。服务器和客户端之间使用的图像大小为 [640x480x3]。

以下是我想到的解决这个问题的各种技术:

  1. 通过消息将整个像素值从服务器传递到客户端
    • 从一台服务器向一个客户端发送一条消息需要 75 毫秒,即使它们在同一个系统中! (从来都不是一个好主意)
  2. 将整个图像拆分成 block ,然后使用流从服务器向客户端发送消息。
    • 在 SO 中对此有多种回答。我目前正在努力让这个工作。
  3. 将像素值分配给 gRPC 在服务器和客户端中识别的变量。换句话说,将图像放在 gRPC 的共享内存中,服务器和客户端都可以访问它(假设服务器和客户端都在同一个系统中)。
    • 服务器和客户端之间的这种消息传递模式是否可行?如果是,请提供一些对文档或示例的引用。

最佳答案

gRPC(目前)不支持任何语言 API 中同一系统上不同进程之间的任何类型的共享内存传输。一个紧密的变体是 C++ 和 Java 支持的进程内传输。这用于在同一进程中的客户端和服务器之间发送消息(例如,如果您想在与可能也有直接外部接口(interface)的服务器相同的地址空间中运行代理),唯一的区别是这个和传统的 gRPC 操作是在两种语言的 channel 创建和用 Java 构建服务器时。这方面的 Java 文档位于 https://grpc.io/grpc-java/javadoc/io/grpc/inprocess/InProcessServerBuilder.html。 .对于 C++,您只需在服务器上调用 Server::InProcessChannel 而不是 grpc::CreateChannel,因为只要您有它们的指针,所有服务器都会自动在 C++ 中具有进程内功能。

希望对您有所帮助!

@vjpai

关于grpc - grpc 客户端和服务端的共享内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47550894/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com