在 Azure IoT Edge 中将大约 1000 MB 的巨大数据字节从模块 A 发送到模块 B

Send huge data bytes approx 1000 MB from Module A to Module B in Azure IoT Edge

我需要将大约 1000 MB 的巨大数据字节从模块 A 发送到 Azure IoT Edge 中的模块 B。 (模块 A 和模块 B 在同一边缘设备中) 消息路由最多允许 262143 字节,直接方法允许大约 160 KB。是否有任何其他选项可以在模块之间发送大量数据字节,性能是主要问题,我不想拆分数据并将其作为块发送。

谢谢

这些数据有什么用?我能想到的另一个选择是使用 docker 卷 https://docs.docker.com/storage/volumes/ or bind mounts, https://docs.docker.com/storage/bind-mounts/.

共享数据

边缘路由不是模块通信的唯一方式。毕竟这些是 docker 容器,没有什么可以阻止您在其中两个容器之间实现自己的 TCP link。由于 docker 提供了一个带有 DNS 服务器的虚拟网络,您还可以避免容器 IP 地址的任何变化。您可以按名称查找容器的地址,默认情况下,容器将使用 docker 的 DNS 服务来执行此操作,因此您将能够将其解析为 IP 地址。名为 azure-iot-edge 的 docker 网络上除 edgeAgent 运行 之外的所有 Azure IoT Edge 模块。您需要实施代码来移动数据。您可以从头开始执行此操作,或者您可以使用预定义的协议,例如 ftp 或 scp。您还需要考虑这一点,除非您采取措施保护此传输,否则它不会被加密(Edge 在路由时为您做的事情)。

我并不是说这会给你最好的表现。我只是为您提供其他研究途径。

有一个共享文件夹帮助 (https://docs.microsoft.com/en-us/azure/iot-edge/how-to-access-host-storage-from-module#link-module-storage-to-device-storage) 并使用 google 协议缓冲区帮助将我们的文件 1/3 1000MB 文件减少到 300MB。