nchan_redis_reconnect_delay_jitter
Директива `nchan_redis_reconnect_delay_jitter` добавляет случайный джиттер к задержке повторного подключения при установлении соединения с сервером Redis в Nchan.
Описание
Директива 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 может привести к увеличению задержки при попытках повторного подключения.