push_message_buffer_length

Устанавливает максимальное число сообщений, которое может быть буферизовано для каждого pub/sub-канала.

Синтаксисpush_message_buffer_length number;
По умолчаниюnone
Контекстhttp, server, location
Аргументы1

Описание

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

При настройке эта директива принимает один целочисленный аргумент, который указывает количество сообщений. Правильный выбор этого значения критичен: слишком маленькое значение может привести к потере легитимных сообщений, если подписчики не успевают их обрабатывать. В то же время слишком большое значение может потреблять больше памяти, что повлияет на производительность NGINX и, возможно, на работу сервера в целом. Рекомендуется отслеживать и корректировать эту настройку на основе фактических шаблонов использования и метрик производительности вашей системы pub/sub.

Эта директива может быть размещена в контекстах http, server или location, что даёт гибкость в зависимости от архитектуры приложения и конкретных требований для разных каналов. Она является частью более широких возможностей модуля Nchan по созданию надёжного механизма pub/sub в среде сервера NGINX.

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

location /pubsub {
    push_message_buffer_length 100;
    nchan_pubsub;
}

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

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

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