Перейти к основному содержимому

Шина координации (Redis)

Актуально для: SimpleTwo 0.9.x (агент 0.5.127 и новее) · Проверено: 07.10.2026

1. Зачем она и что на ней лежит​

Шина — один экземпляр Redis, через который согласуются:

ПотребительЧто держит на шине
Пул SFU (LiveKit)какая комната на каком узле, реестр узлов, сигнальные сообщения
Кластер MCUнагрузку узлов, регистрации переговорных аппаратов, пересылку исходящих вызовов
Запись (egress)очередь заданий записи
Шлюз ТфОПRPC между шлюзом и SFU

Всё это временное состояние: каждый потребитель заново публикует свои ключи через секунды после переподключения. Поэтому шина настраивается как шина сообщений, а не как база данных. Один узел SFU работает и без шины; второй узел SFU, второй узел MCU и шлюз ТфОП без неё не разворачиваются.

Шина — это либо роль redis (ставится агентом, слушает частную сеть, порт 6379 открыт только адресам потребителей), либо внешний Redis вашей организации.

2. Где смотреть​

Service → Coordination bus (Redis) (право gateways:read):

  • какая шина используется — роль или внешняя — и её адрес;
  • отчёт хоста шины: версия, время работы, память и потолок, политика вытеснения, число ключей, истёкшие и вытесненные ключи, клиенты, операции в секунду, состояние сохранения на диск, роль master/replica;
  • кто подключён: каждый хост SFU, MCU, записи и ТфОП с числом соединений — и строки «неизвестный» для соединений с адресов, которые не являются хостами этой установки;
  • с каких адресов межсетевой экран пускает на 6379.

Отчёт снимает агент на хосте шины (INFO и CLIENT LIST) и присылает с пульсом: координатор к шине не подключается. Для внешнего Redis агента рядом нет — карточка показывает настройки, а проверка подключения — в Settings → External stores.

Токен вендорской поддержки видит эту карточку с обезличенными именами клиентов и командами.

3. Настройка​

Право gateways:write, каждое изменение — в журнале аудита.

ПараметрПо умолчаниюПочему
Потолок памятине задан0 — без потолка, 25% — доля ОЗУ хоста, 512mb — в МиБ
Политика на потолкеnoevictionвытесненный ключ — это комната, пропавшая из маршрутизации, или регистрация аппарата, которую узел перестал пересылать; на потолке лучше громкий отказ записи
Сохранение на дисквыключенона шине нет ничего, что переживает потребителей; снимок после перезапуска вернул бы несуществующие комнаты и регистрации

RDB-снимки и AOF (fsync раз в секунду) доступны, если на шине держат что-то своё или нужно, чтобы очередь записи пережила перезапуск шины.

Изменения применяются к работающему серверу (CONFIG SET), шина не перезапускается и данные сохраняет. Перезапуск нужен только при смене адреса хоста шины.

Вытесненные ключи

Если в карточке растёт счётчик «вытеснено», потребители теряли состояние. Поднимите потолок или верните noeviction.

4. Смена пароля без простоя​

Кнопка Rotate the password (право gateways:write):

  1. шина начинает принимать оба пароля — старый и новый;
  2. потребители по одному получают новый пароль. Пароль они читают только при старте, поэтому каждый перезапускается один раз, а следующий ждёт, пока предыдущий вернётся в строй;
  3. шина забывает старый пароль.

Шина не отказывает ни одному потребителю, но звонки на узле SFU или MCU переподключаются, когда этот узел перезапускается — меняйте пароль в тихий час. Если шаг ждёт дольше 10 минут (хост выключен), карточка предложит Skip this node — хост получит новый пароль, когда вернётся. Abort до последнего шага возвращает уже переведённых потребителей на старый пароль.

Смена недоступна:

  • на Redis 5 — он держит один пароль, и смена отрезала бы всех до перезапуска;
  • для внешнего Redis — его пароль меняют на том сервере, затем вписывают в настройки;
  • пока хост шины не прислал отчёт.

5. Внешний Redis​

Settings → External stores → Redis: адрес, пароль и флажок TLS. С TLS сертификат сервера проверяется по имени хоста из адреса — всеми потребителями и кнопкой проверки. Сохранённый пароль кнопка проверки отправляет только на сохранённый адрес.

Узлы MCU подключаются к шине по TLS начиная с MCU 0.9.0.

6. Отказоустойчивость​

Реплика и Sentinel пока не поддерживаются: при недоступной шине звонки в процессе продолжаются, новые звонки не маршрутизируются между узлами SFU, узлы MCU работают поодиночке. systemd поднимает шину за секунды. План — в ADR-0055 §7.