memcached_next_upstream_tries
Директива `memcached_next_upstream_tries` задаёт, сколько серверов memcached будет опробовано перед тем, как запрос будет считаться неудачным. — NGINX HTTP Core
Описание
Директива `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 не даст эффекта, поскольку отсутствуют альтернативные серверы для подключения.