nchan_redis_reconnect_delay_jitter

Директива `nchan_redis_reconnect_delay_jitter` добавляет случайный джиттер к задержке повторного подключения при установлении соединения с сервером Redis в Nchan.

Синтаксисnchan_redis_reconnect_delay_jitter number;
По умолчаниюnone
Контекстupstream
Аргументы1

Описание

Директива nchan_redis_reconnect_delay_jitter используется в контексте Nchan — масштабируемого pub/sub-сервера для NGINX, который позволяет буферизовать сообщения между несколькими подписчиками с помощью Redis. Когда модуль Nchan пытается переподключиться к серверу Redis после разъединения, он обычно следует стандартной стратегии экспоненциального увеличения задержки, чтобы не перегружать сервер попытками подключения. Эта директива добавляет случайность в механизм задержки, создавая эффект джиттера, который помогает распределять попытки переподключения во времени; это особенно полезно в сценариях, где несколько экземпляров Nchan одновременно пытаются переподключиться к одному и тому же серверу Redis.

Параметр этой директивы задаёт величину случайного джиттера, применяемого к задержке переподключения. Введение такой случайности помогает предотвратить проблему thundering herd — когда все экземпляры Nchan пытаются подключиться одновременно, что приводит к периодической перегрузке или повышению задержки на сервере Redis. Такое поведение может значительно повысить устойчивость подключений и общую производительность, особенно в средах с конфигурациями высокой доступности или во время обслуживания, когда Redis может быть временно недоступен.

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

upstream my_redis {
    nchan_redis_reconnect_delay_jitter 100; 
}

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

Использование очень высокого значения jitter может привести к увеличению задержки при попытках повторного подключения.

← Ко всем директивам