memcached_next_upstream_tries

Директива `memcached_next_upstream_tries` задаёт, сколько серверов memcached будет опробовано перед тем, как запрос будет считаться неудачным. — NGINX HTTP Core

memcached_next_upstream_tries
httpserverlocation
Синтаксисmemcached_next_upstream_tries number;
По умолчанию1
Контекстhttp, server, location
МодульNGINX HTTP Core
Аргументы1

Описание

Директива `memcached_next_upstream_tries` в NGINX указывает количество серверов memcached, к которым будет предпринята попытка обращения при взаимодействии с бэкенд-кэшем в случае возникновения определённых ошибок. Основная цель директивы — повысить отказоустойчивость при обращении к кэшу, позволяя NGINX повторно отправлять запросы на другой сервер memcached, если текущий недоступен или возвращает ошибку. Это особенно полезно в окружениях с несколькими серверами memcached для балансировки нагрузки и резервирования. Если запрос к серверу memcached завершается неудачей из-за проблемы с соединением или ошибки сервера, NGINX повторит запрос на другом сервере memcached до числа попыток, указанного этой директивой. Если все указанные попытки завершатся неудачей, запрос в конечном итоге вернёт ошибку клиентскому приложению. Важно учитывать, что эффективная работа этой директивы требует наличия нескольких серверов memcached, определённых в ваших настройках memcached; в противном случае директива не окажет никакого эффекта. Параметр директивы — простое целое число, задающее количество попыток повтора. Его можно установить в `0`, чтобы отключить попытки на альтернативных серверах, или в `1` и более для указания конкретного числа повторов. Слишком большое число повторов может привести к увеличению времени ответа, тогда как слишком малое — к более частым отказам, если серверы чувствительны к временным сбоям.

Пример конфига

location /memcached {
    memcached_pass 127.0.0.1:11211;
    memcached_next_upstream_tries 3;
}

Установка слишком большого числа retries может привести к увеличению времени отклика, особенно в средах с медленными сетями или загруженными серверами.

Если другие серверы memcached не настроены, увеличение retries не даст эффекта, поскольку отсутствуют альтернативные серверы для подключения.