Skip to content

Зависимости

Postgresql

Postgresql - открытая, кластерная реляционная база данных с языком запросов SQL. Pepeunit использует её для:

  1. Хранения информации о всех сущностях - Repo, Unit, UnitNode
  2. Хранения шифрованной информации
  3. Хранения информации о доступах и видимости

EMQX MQTT Broker

EMQX MQTT Broker - это серверное приложение, которое координирует сообщения между издателями и подпищиками MQTT протокола. Брокер обеспечивает взаимодействие через 1883 и 8883 порты между Unit и Backend. Его можно назвать рельсой данных, на которую завязано основное взаимодействие.

Ключевые моменты взаимодействия MQTT Broker, Backend и Unit

Backend выполняет Административные функции, а именно:

  1. Авторизация всех Unit для доступа к определённым топикам
  2. Агрегация данных из определённых топиков, согласно политике имён топиков
  3. Управление Unit, при помощи системы команд, позволяющей публиковать в топики задания на обновление schema.json, env.json или программы целиком.
  4. Получение состояний Unit через специальный топик.

Брокер EMQX на два порядка производительней чем Backend, но благодаря системе кэширования авторизации EMQX и кэшированию через Redis, Backend может справится с нагрузкой.

Redis

Redis - NoSQL кластерная база данных использующая парадигму key-value

  1. Обеспечивает кэширование и хранение промежуточной информации о состоянии UnitNode, во время обращения Unit к MQTT Broker через топики.
  2. Используется также для авторизации Backend в момент подписки на основные топики unit.example.com/+/pepeunit и unit.example.com/+/+/+/pepeunit в MQTT Broker.

Общая схема взаимодействия