Шина координации (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):
- шина начинает принимать оба пароля — старый и новый;
- потребители по одному получают новый пароль. Пароль они читают только при старте, поэтому каждый перезапускается один раз, а следующий ждёт, пока предыдущий вернётся в строй;
- шина забывает старый пароль.
Шина не отказывает ни одному потребителю, но звонки на узле 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.