Обеспечение отказоустойчивости графов репликации при обслуживании и развертывании
Все элементы GraDeLy работают в Kubernetes-подах.
При рестарте или развертывании отдельных компонентов необходимо обеспечить наличие корректно настроенного обработчика ошибок (error handler connection_error retry) на ребрах графа.
При восстановлении поды автоматически возобновляют участие в репликации.
Namespace: rpwl
Pod: egress-gw-rplw-module
- Используется как шлюз для выхода из репликации.
- Условие отказоустойчивости:
На ребрах графа обязательно должен быть установлен обработчик ошибок connection_error retry. - Поведение при рестарте/повторном развертывании:
- На время недоступности поды репликация прерывается.
- После восстановления под автоматически переподключается к репликации.
Pod: in-gw-rplw-module-unver
- Аналогично egress-gw-rplw-module, но для входящего трафика.
- Условие отказоустойчивости:
Требуется error handler connection_error retry на ребрах графа. - Поведение при рестарте/повторном развертывании:
После восстановления под возобновляет участие в репликации автоматически.
Pod: rplw-module-n-unver (воркеры репликации)
Основные воркеры, выполняющие процессы репликации.
Поведение при рестарте/повторном развертывании:
- Если существует standby-резервирующий воркер:
- он автоматически берет на себя репликацию на время простоя.
- после восстановления основной воркер может снова включиться в работу.
- Если standby-резервирования нет:
- перезапущенный воркер самостоятельно переподключается в репликацию после восстановления.
Для работы механизма standby-резервирования в момент рестарта воркеров должна быть доступна grdl-console.
Консоль управляет назначением standby-модулей и обеспечивает автоматический failover.
Namespace: console+ui
Pod: console, UI
- Перезапуск или развертывание подов в этом namespace не влияет на репликацию,
если не требуется механизм standby-резервирования модулей графа. - Репликация продолжает работать автономно через Kafka и воркеры.
Итог
Для шлюзов (egress-gw, in-gw) отказоустойчивость обеспечивается через connection_error retry.
Для воркеров (rplw-module-n-unver) используется механизм standby-резервирования (или авто-переподключение без standby).
Репликация сама восстанавливается после восстановления подов.
Консоль и UI можно рестартовать без прерывания репликации, но при этом временно недоступно управление standby.