Отправляйте огромные байты данных примерно 1000 МБ из модуля A в модуль B в Azure IoT Edge - PullRequest
0 голосов
/ 29 мая 2020

Мне нужно отправить огромные байты данных примерно 1000 МБ из модуля A в модуль B в Azure IoT Edge. (Модуль A и модуль B находятся на одном пограничном устройстве) Маршруты сообщений позволяют использовать максимум 262143 байта, а прямой метод - примерно 160 КБ. Есть ли другие варианты отправки огромных байтов данных между модулями? Производительность является основной проблемой, и я не хочу разделять данные и отправлять их по частям.

Спасибо

Ответы [ 3 ]

1 голос
/ 02 июня 2020

Граничная маршрутизация - не единственный способ взаимодействия модулей. В конце концов, это docker контейнеров, и ничто не мешает вам реализовать собственное TCP-соединение между двумя из них. Поскольку docker предоставляет виртуальную сеть с DNS-сервером, вы также сможете избежать любых изменений IP-адресов ваших контейнеров. Вы можете найти адрес контейнера по имени, и, по умолчанию, контейнер будет использовать для этого службу DNS docker, поэтому вы сможете преобразовать его в IP-адрес. Все модули Azure IoT Edge, кроме edgeAgent, работают в сети docker с именем azure -iot-edge. Вам нужно будет реализовать код для перемещения данных. Вы можете сделать это с нуля или, возможно, использовать предопределенный протокол, такой как ftp или scp. Вы также должны учитывать, что, если вы не предпримете шаги для защиты этой передачи, она не будет зашифрована (что Edge делает для вас при маршрутизации).

Я не предполагаю, что это даст вам лучшее представление. Я просто предлагаю вам другие возможности для ваших исследований.

0 голосов
/ 05 июня 2020

Помогло наличие общей папки (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 файла с 1000 МБ до 300 МБ.

0 голосов
/ 01 июня 2020

Для чего используются эти данные? Другой вариант, который я могу придумать, - это поделиться данными с помощью docker volume, https://docs.docker.com/storage/volumes/ или привязать крепления, https://docs.docker.com/storage/bind-mounts/.

...