Взаимодействие с базой данных в сети IOT - PullRequest
0 голосов
/ 05 апреля 2019

Предположим, у нас есть несколько (100) узлов в сети IOT.Каждый узел имеет ограниченные ресурсы.В одном из этих узлов работает сервер базы данных postgresql.Теперь у каждого узла есть несколько (4-5) процессов, которые должны взаимодействовать с этим сервером для выполнения некоторых запросов вставки и выбора.Каждый ответ на запрос должен быть максимально быстрым, чтобы процесс работал так, как должен.Теперь я думаю о некоторых способах сделать это:

  1. Каждый процесс в узле делает одного клиента базы данных и выполняет запросы.
  2. Все процессы в узле отправляют свои запросы в пункт назначения на самом локальном хосте, откуда запросы выполняются через оптимальное количество клиентов базы данных.Таким образом, мы имеем некоторый контроль над количеством клиентов базы данных, например, оптимизация запросов, выполняемых через реализацию очереди с приоритетами, или выполнение запросов в отдельном потоке / процессе через отдельный клиент базы данных в каждом потоке / процессе.В этом случае мы можем контролировать количество клиентов, количество потоков / процессов, приоритет того, в каком порядке должны выполняться запросы.
  3. Каждый узел отправляет все запросы через некоторый сетевой протокол напрямую всервер базы данных, который затем использует ограниченное число клиентов базы данных, которые выполняют запросы в своей собственной базе данных localhost и затем возвращают ответ каждому узлу через один и тот же канал.Таким образом, увеличивается задержка, но сохраняется минимальное количество клиентов.Кроме того, мы также можем реализовать некоторую оптимизацию, запустив каждый клиент в другом процессе / потоке и т. Д. В этом случае взаимодействие с базой данных может быть более быстрым, поскольку количество клиентов может быть минимальным, оно выполняется на самой машине локального хоста, но добавляет некоторые накладные расходы для передачизапросить ответные данные обратно в процесс узла.

Чтобы обеспечить минимальное использование ресурсов в каждом узле и максимально быстро запрашивать ответ, какова лучшая стратегия для решения этой проблемы?

1 Ответ

0 голосов
/ 06 апреля 2019

Не зная деталей сети, вариант 3 будет использоваться нормально.Причины:

  • Аутентификация: как правило, вы не хотите использовать пользователей базы данных для аутентификации устройств IoT.
  • Безопасность: Используя определенный протокол IoT, вы можете быть уверены, что используете TLS ипроверка подлинности сервера на основе сертификатов.
  • Совместимость протокола: в случаях обновления вы должны убедиться, что вы можете обновить клиентские узлы независимо от серверных узлов или наоборот.Это может быть не так для протокола базы данных.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...