Sobes.tech
Middle+

Kā SQL serveris, kas lejupielādē datus no Postgres, uzzina, ka Postgres galvenais ir kritis un Patroni to ir pārslēdzis uz replikas režīmu?

sobes.tech AI

Atbilde no AI

Когда Patroni переключает мастер на реплику (failover), происходит смена роли узла в кластере PostgreSQL. SQL-сервер, который подключается к базе, должен узнать о новом мастере, чтобы продолжить работу с записью.

Как это происходит:

  • Patroni управляет состоянием кластера и хранит информацию о текущем мастере в распределённом хранилище (например, Etcd, Consul или ZooKeeper).
  • Клиенты (SQL-серверы или приложения) обычно не подключаются напрямую к конкретному хосту, а используют виртуальный IP, DNS-имя или прокси, который перенаправляет запросы на текущий мастер.
  • При переключении Patroni обновляет виртуальный IP или DNS-запись, указывая на новый мастер.
  • SQL-сервер, который качает данные, при следующем подключении или при ошибке подключения повторно резолвит адрес и подключается к новому мастеру.

Если используется прокси (например, HAProxy или PgBouncer), он также обновляет маршрутизацию на новый мастер.

Таким образом, SQL-сервер узнаёт о смене мастера через инфраструктуру балансировки или обновление DNS/виртуального IP, а не напрямую от самого PostgreSQL.