nchan_message_timeout
Устанавливает продолжительность таймаута для сообщений в Nchan pub/sub server.
Описание
nchan_message_timeout директива задаёт продолжительность, в течение которой опубликованное сообщение остаётся доступным для подписчиков в контексте Nchan pub/sub server. Этот таймаут критически важен для того, чтобы подписчики могли получить сообщения достаточно быстро, а также чтобы избежать устаревания сообщений в системе шины сообщений. Если сообщение не будет потреблено в указанный период таймаута, оно будет удалено из буфера сообщений, чтобы освободить ресурсы для более новых сообщений.
При настройке этой директивы вы можете задать таймаут в любой единице времени, например в секундах, минутах или часах (например, 30s, 2m). Такая гибкость позволяет тонко настраивать поведение в зависимости от потребностей приложения и ожидаемых шаблонов потребления. Когда Nchan помещает сообщения в очередь, он будет проверять этот таймаут, чтобы определить, можно ли ещё доставить сообщение подписчикам или его следует отбросить. Короткий таймаут может увеличить оборот сообщений, в то время как более длительный таймаут может быть уместен для сценариев с прерывистым соединением или медленными потребителями.
Важно отметить, что эта директива применяется на разных уровнях (http, server, location), что позволяет задавать разные настройки таймаута в зависимости от контекста в конфигурации. Однако если директива задана на нескольких уровнях, приоритет имеет наиболее специфичная настройка. Понимание влияния на производительность и шаблонов использования вашего приложения — ключ к правильной установке этого таймаута.
Пример конфига
location /channel {
nchan_subscriber; # Enable subscriber configuration
nchan_message_timeout 30s; # Messages available for 30 seconds
}Установка слишком малого таймаута может привести к потере сообщений, которые подписчики не успевают обработать.
Важно установить значение, соответствующее ожидаемой нагрузке и скорости обработки подписчиков, чтобы избежать ненужного удаления сообщений.