shm_queue

Директива shm_queue настраивает очереди в разделяемой памяти для межпроцессного взаимодействия в модулях NGINX на базе WebAssembly.

Синтаксисshm_queue name size [max_size];
По умолчаниюnone
Контекст
Аргументы2-3

Описание

Директива shm_queue является частью модуля NGINX Proxy-Wasm, который облегчает управление разделяемой памятью для приложений WebAssembly, работающих в NGINX. Эта директива позволяет настроить очереди FIFO (первым пришёл — первым обслужен) в разделяемой памяти, которые могут использоваться для обмена сообщениями между разными рабочими процессами NGINX или между отдельными модулями WebAssembly. Директива упрощает рабочий процесс, позволяя данным, произведённым одним процессом, потребляться другим, что повышает модульность и производительность сложных приложений, использующих общие ресурсы.

Директива shm_queue принимает 2–3 параметра. Первый параметр указывает имя очереди, которое должно быть уникальным в конфигурации NGINX. Второй параметр задаёт размер очереди, то есть определяет, сколько сообщений может храниться в ней одновременно. При желании можно указать третий параметр, который устанавливает максимальный размер каждого отдельного сообщения или задаёт пользовательские настройки для кодированных данных. Если третий параметр опущен, будет применён максимальный размер по умолчанию, основанный на внутренней конфигурации модуля. Такая гибкость позволяет разработчикам адаптировать поведение очереди под конкретные требования их приложения.

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

shm_queue my_queue 1000 256;

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

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

При использовании необязательного параметра max_size убедитесь, что он соответствует размеру отправляемых данных, чтобы предотвратить усечение.

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