Sobes.tech
Middle+

Чӣ гуна сервери SQL, ки маълумотҳоро аз Postgres мекашад, медонад, ки Postgres асосӣ афтода ва Patroni онро ба нусхаи дигар гузошт?

sobes.tech AI

Ҷавоб аз AI

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

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

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

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

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