Performance standby позволяет standby-узлам (неведущим узлам HA) внутри одного кластера обслуживать запросы на чтение локально, а не перенаправлять каждый запрос на активный узел. Это распределяет нагрузку чтения между всеми узлами кластера и снижает задержки, при этом записи и другие операции, изменяющие состояние, по-прежнему перенаправляются на активный узел.

В отличие от межкластерной репликации (PR) и репликации для аварийного восстановления (DR), которые работают между отдельными кластерами, performance standby работает внутри одного кластера и не требует межкластерной настройки.

Как это работает

Принцип работы performance standby:

  • В HA-кластере один узел активный, остальные — standby-узлы.
  • В Stronghold EE каждый standby-узел становится performance standby: он обрабатывает запросы на чтение по своему локальному состоянию.
  • Запросы, изменяющие состояние (записи, удаления), перенаправляются на активный узел и применяются на нём.

Performance standby включён по умолчанию в Stronghold EE. Дополнительная настройка не требуется — достаточно запустить HA-кластер на integrated Raft storage.

Проверка performance standby

Отправьте запрос на чтение напрямую на standby-узел с заголовком X-Vault-No-Request-Forwarding. Performance standby всё равно вернёт 200 на чтение, потому что обслуживает его локально; запрос, которому нужен активный узел, при подавлении перенаправления вернёт статус не из диапазона 2xx.

curl --header "X-Vault-Token: ${VAULT_TOKEN}" --header "X-Vault-No-Request-Forwarding: true" "${STANDBY_ADDR}/v1/secret/data/hello"

Роль узла также можно проверить в выводе sys/health: у performance standby поле performance_standby равно true.

Отключение performance standby

Чтобы отключить performance standby, не затрагивая репликацию, задайте в конфигурации сервера параметр:

disable_performance_standby = true

С этим параметром standby-узлы перенаправляют все запросы на активный узел, как это было бы без функции performance standby в Stronghold EE.

Параметр disable_performance_standby применяется в конфигурации сервера Standalone-установки Stronghold.