Я изо всех сил пытаюсь разработать эффективный способ обмена информацией между процессами в моей локальной сети. До сих пор я работал с одним RPI, и у меня была куча python скриптов, работающих как сервисы. Службы взаимодействовали с использованием сокетов (multprocessing.connection
Client and Listener), и все было в порядке.
Недавно я установил другой RPi с некоторыми дополнительными службами, и я понял, что по мере роста числа служб проблема масштабируется довольно плохо. В общем, мне не нужны все сервисы для связи с другими, но я ищу элегантное решение, которое позволило бы мне быстро масштабироваться в случае необходимости добавления других сервисов. Поэтому, по сути, мне сначала нужна карта расположения каждой службы, например,
- Служба 1 -> RPi 1
- Служба 2 -> RPi 2
- . ..
Первый подход, который я предложил, заключался в следующем: я подумал, что могу добавить дополнительную службу «шлюза», чтобы любое приложение, работающее в RPx, отправляло свои данные / запрос шлюзу, и шлюз затем перенаправит его на соответствующую службу или шлюз, работающий на другом устройстве.
Позже я также понял, что на самом деле я могу просто дать карту каждому сервису и позволить всем сервисам управлять своим собственным соединением. Это будет означать, что многие слушатели получат доступ к внешнему адресу, и я не уверен, что это лучший вариант.
У вас есть предложения? Я также заинтересован в изучении различных вариантов реализации фактического соединения, может быть, клиент / слушатель не будет эффективным.
Спасибо за вашу помощь. Я многому учусь с этим проектом!