SafeKit - СейфКит
Комплекс безопасности для вашего бизнеса
Услуги
Битрикс24
1С-Битрикс: Управление сайтом
Mikrotik
Windows Server
Блог
Компания
О компании
Партнеры
Реквизиты
Оферта
Политика
Контакты
Акции
+79696000089
+79696000089 Мобильный
Войти
  • Корзина0
  • Избранные товары0
  • Сравнение товаров0
sale@safekit.tech
г. Нижний Новгород, сп Новинки, ул. 2-ая Дорожная, д. 13, кв. 19
  • Вконтакте
  • Telegram
  • WhatsApp
+79696000089
+79696000089 Мобильный
SafeKit - СейфКит
Войти
Сравнение0
Избранные товары 0
Корзина 0
Компания
  • О компании
  • Партнеры
  • Реквизиты
  • Оферта
  • Политика
Сертификаты
Услуги
  • Битрикс24
  • 1С-Битрикс: Управление сайтом
  • Mikrotik
  • Windows Server
Блог
Лицензии
  • amoCRM
  • Битрикс
  • Подписки
Инструменты
SafeKit Pro
Развлечения для сетевиков
Контакты
+  ЕЩЕ
    SafeKit - СейфКит
    Компания
    • О компании
    • Партнеры
    • Реквизиты
    • Оферта
    • Политика
    Сертификаты
    Услуги
    • Битрикс24
    • 1С-Битрикс: Управление сайтом
    • Mikrotik
    • Windows Server
    Блог
    Лицензии
    • amoCRM
    • Битрикс
    • Подписки
    Инструменты
    SafeKit Pro
    Развлечения для сетевиков
    Контакты
    +  ЕЩЕ
      Сравнение0
      Избранные товары 0
      Корзина 0
      HAProxy и PostgreSQL: как автоматически определять роли экземпляров и защититься от split brain - SafeKit - СейфКит
      Сравнение0 Избранные товары 0 Корзина 0
      Телефоны
      +79696000089 Мобильный
      • Услуги
        • Назад
        • Услуги
        • Битрикс24
        • 1С-Битрикс: Управление сайтом
        • Mikrotik
        • Windows Server
      • Блог
      • Компания
        • Назад
        • Компания
        • О компании
        • Партнеры
        • Реквизиты
        • Оферта
        • Политика
      • Контакты
      • Акции
      • Личный кабинет
      • Корзина0
      • Избранные товары0
      • Сравнение товаров0
      • +79696000089Мобильный
      Контактная информация
      г. Нижний Новгород, сп Новинки, ул. 2-ая Дорожная, д. 13, кв. 19
      sale@safekit.tech
      • Вконтакте
      • Telegram
      • WhatsApp

      HAProxy и PostgreSQL: как автоматически определять роли экземпляров и защититься от split brain

      Главная
      —
      Блог
      —HAProxy и PostgreSQL: как автоматически определять роли экземпляров и защититься от split brain
      9 октября 2026 0:00
      HAProxy и PostgreSQL: как автоматически определять роли экземпляров и защититься от split brain
      При построении отказоустойчивого кластера PostgreSQL важно, чтобы балансировщик корректно понимал, какой экземпляр сейчас является мастером, а какой — репликой. Иначе трафик на запись может уйти не туда, а кластер рискует столкнуться с split brain. Разбираем, как настроить HAProxy для автоматического определения ролей через Patroni REST API, параметр in_hot_standby и запрос pg_is_in_recovery().

      Отказоустойчивость PostgreSQL-кластера во многом зависит от того, насколько правильно балансировщик нагрузки распределяет входящие соединения между экземплярами. Если HAProxy не понимает, какой сервер сейчас выполняет роль мастера, а какой — реплики, клиентские запросы на запись могут попасть на реплику и завершиться ошибкой. Ещё опаснее ситуация, когда в кластере возникает split brain — два узла одновременно считают себя мастером, что ведёт к конфликтам и риску потери данных. Для предотвращения таких сценариев HAProxy должен выполнять регулярные проверки состояния каждого экземпляра и динамически направлять трафик на подходящие серверы.

      Подробности

      Существует несколько способов научить HAProxy различать роли экземпляров PostgreSQL. Первый и наиболее предпочтительный — использовать Patroni REST API. Patroni, как инструмент управления отказоустойчивым кластером, предоставляет endpoint, через который балансировщик может узнать текущую роль узла: мастер или реплика. Если Patroni работает и не находится на паузе, этот метод даёт наиболее точную и своевременную информацию о состоянии кластера.

      Однако бывают ситуации, когда Patroni поставлен на паузу или вовсе не используется. В таких случаях на помощь приходят два альтернативных механизма. Первый — параметр in_hot_standby, который сервер PostgreSQL передаёт клиенту сразу после аутентификации. Этот параметр позволяет HAProxy определить, находится ли экземпляр в режиме горячего резерва, то есть является ли он репликой. Второй способ — выполнение SQL-запроса select pg_is_in_recovery();. Функция pg_is_in_recovery() возвращает true, если сервер находится в процессе восстановления и, следовательно, работает как реплика, и false — если это мастер.

      Оба последних метода применяются именно тогда, когда Patroni недоступен, поставлен на паузу или не задействован в архитектуре. Они позволяют HAProxy продолжать корректно определять роли и не допускать отправки запросов на запись к репликам. Такой подход особенно важен для защиты от split brain: если балансировщик точно знает, кто является мастером, он не будет направлять трафик на потенциально конфликтующий узел.

      Что делать

      Для корректной настройки HAProxy следует выбрать подходящий механизм проверки ролей с учётом особенностей вашей инфраструктуры. Если вы используете Patroni, настройте health check через его REST API — это обеспечит наиболее надёжное определение ролей. Если Patroni не применяется или временно приостановлен, задействуйте проверку параметра in_hot_standby или запрос select pg_is_in_recovery(). Убедитесь, что проверки выполняются с достаточной частотой, чтобы HAProxy быстро реагировал на переключение ролей и изменения в кластере. Также стоит протестировать поведение балансировщика при плановом переключении (failover) и в сценариях сбоя, чтобы убедиться, что трафик на запись всегда попадает на актуальный мастер.

      Грамотно настроенные проверки ролей в HAProxy — это не только удобство маршрутизации, но и важный элемент защиты от split brain. Автоматическое определение мастера и реплик позволяет снизить риск ошибок конфигурации и повысить общую отказоустойчивость кластера PostgreSQL.

      Источник: Хабр — Системное администрирование

      Теги
      новости Хабр — Системное администрирование
      Назад к списку
      Теги
      AWS Security Blog BleepingComputer Check Point Research Cisco Talos Intelligence Cloudflare Blog (Security) CVE CVE Project (cvelistV5) CVE-2025-15679 CVE-2026-0302 CVE-2026-11765 CVE-2026-14297 CVE-2026-18453 CVE-2026-18796 CVE-2026-18922 CVE-2026-19802 CVE-2026-19843 CVE-2026-19944 CVE-2026-20512 CVE-2026-21101 CVE-2026-32686 CVE-2026-33920 CVE-2026-4129 CVE-2026-42806 CVE-2026-42807 CVE-2026-42808 CVE-2026-46460 CVE-2026-47680 CVE-2026-4945 CVE-2026-49918 CVE-2026-49919 CVE-2026-50237 CVE-2026-52762 CVE-2026-5399 CVE-2026-61699 CVE-2026-63622 CVE-2026-64560 CVE-2026-6640 CVE-2026-6641 CVE-2026-6642 CVE-2026-68878 CVE-2026-68897 CVE-2026-69272 CVE-2026-69493 CVE-2026-69494 CVE-2026-69600 CVE-2026-69845 CVE-2026-69855 CVE-2026-69911 CVE-2026-7188 CVE-2026-73312 CVE-2026-73334 CVE-2026-73784 CVE-2026-73785 CVE-2026-73789 CVE-2026-74761 CVE-2026-74859 CVE-2026-76560 CVE-2026-76925 CVE-2026-78083 CVE-2026-78133 CVE-2026-78302 CVE-2026-78374 CVE-2026-78448 CVE-2026-78701 CVE-2026-78807 CVE-2026-79635 CVE-2026-79636 CVE-2026-79968 CVE-2026-80123 CVE-2026-80124 CVE-2026-80354 CVE-2026-80462 CVE-2026-81353 CVE-2026-81635 CVE-2026-81909 CVE-2026-81978 CVE-2026-82056 CVE-2026-82533 CVE-2026-82582 CVE-2026-82617 CVE-2026-83954 CVE-2026-83971 CVE-2026-83996 CVE-2026-84390 CVE-2026-85117 CVE-2026-85384 CVE-2026-85546 CVE-2026-85662 CVE-2026-85702 CVE-2026-86073 CVE-2026-86256 CVE-2026-86317 CVE-2026-86781 CVE-2026-86782 CVE-2026-86812 CVE-2026-87589 CVE-2026-87733 CVE-2026-87747 CVE-2026-87766 CVE-2026-87827 CVE-2026-87874 CVE-2026-87875 CVE-2026-87876 CVE-2026-87894 CVE-2026-87908 CVE-2026-87916 CVE-2026-87962 CVE-2026-88008 CVE-2026-88260 CVE-2026-88264 CVE-2026-88940 CVE-2026-89148 CVE-2026-89212 CVE-2026-89240 Dark Reading Fortinet Blog Kaspersky Securelist RU Keycloak Blog Krebs on Security Microsoft Security Blog mikrotik opennet Positive Technologies Blog SecurityWeek The Hacker News безопасность информационная безопасность кибербезопасность новости новости ИБ Хабр — Информационная безопасность Хабр — Системное администрирование Яндекс Облако — Безопасность
      Компания
      Сертификаты
      Услуги
      Блог
      Лицензии
      Инструменты
      SafeKit Pro
      Развлечения для сетевиков
      Контакты
      • Вконтакте
      • Telegram
      • WhatsApp
      +79696000089
      +79696000089 Мобильный
      sale@safekit.tech
      г. Нижний Новгород, сп Новинки, ул. 2-ая Дорожная, д. 13, кв. 19
      Политика конфиденциальности
      Политика использования файлов cookie
      2026 © Всё для защиты и стабильности
      Нашли ошибку на сайте? Выделите текст и нажмите Ctrl+Shift+Enter (или Cmd+Shift+Enter на Mac) — сообщение уйдёт в поддержку. Если горячие клавиши недоступны, пишите на support@safekit.tech.

      Мы используем файлы cookie для работы сайта и, с вашего согласия, для аналитики (Яндекс.Метрика) и работы квиз-формы (Marquiz). Подробнее — в Политике использования cookie и Политике обработки персональных данных.