/mysql-ha

Primary LanguageShell

Реализация MySQL HA с помощью orcestrator + consul + ProxySQL

Компоненты:

  • github/orchestrator
  • consul
  • consul-template
  • proxysql

orchestrator - специальное ПО, выполняет отслеживание состояния MySQL кластера и в случае обнаружения проблем с мастер-сервером (недоступность) выполняет выбор и назначение (promotion) нового мастера.

consul - обнаружение сервисов и хранилище ключ-значение, используется для хранения и получения информаци об актуальном MySQL мастере

ProxySQL - посредник между MySQL и приложением нужен для предотвращения split-brain т.е. когда из-за сетевых проблем часть приложений сподключена и пишет в старый MySQL мастер а другая часть в новый. Задача ProxySQL в случае обнаружения недоступности мастера отключить ВСЕХ клиентов от старого мастера на время необходимое orchestrator'у для назначения нового мастера, а после выполнить подключение ВСЕХ клиентов к новому мастеру

consul-template - использует шаблоны чтобы менять настройки в конфигурационных файлах в соответствии со значениями полученными из consul и consul kv, а также выполнять команды в случае изменения шаблона.