[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"glossary-message-queue::ru":3,"gloss-cluster-message-queue::ru":20,"gloss-next-message-queue::ru":9},{"slug":4,"category":5,"name":6,"definition":7,"meta_desc":8,"faq":9,"schema_markup":9,"related":10},"message-queue","data-infra","Очередь сообщений (Message Queue)","Очередь сообщений — это инфраструктура, которая разделяет производителя (producer) единицы работы и потребителя (consumer), который в итоге её выполняет, удерживая сообщения (единицы работы или данных) в упорядоченном буфере до тех пор, пока рабочий процесс не будет готов их обработать. Вместо того чтобы Сервис A напрямую вызывал Сервис B и ждал ответа (синхронно, с тесной связью и хрупкостью, если B медленный или недоступен), Сервис A публикует сообщение в очередь и сразу продолжает работу; Сервис B (или парк рабочих процессов) потребляет сообщения из очереди в своём темпе. Почему это важно для разработчиков AI\u002FSaaS: AI-нагрузки часто медленные и переменной длительности — генерация изображения может занять 5 секунд, транскрибация часового аудио — минуту, пакетное задание эмбеддинга по 10 000 документам — намного дольше, — и ничему из этого не место внутри цикла запрос\u002Fответ веб-запроса, который должен возвращаться заметно быстрее секунды, чтобы ощущаться отзывчивым. Именно очереди позволяют продукту мгновенно принять запрос («ваше видео обрабатывается»), вернуть управление пользователю и завершить реальную AI-работу в фоне, уведомляя пользователя через вебхук, опрос (polling) или websocket по готовности. Как это работает: производитель публикует сообщение (обычно в JSON) в именованную очередь или топик; один или несколько рабочих-потребителей забирают сообщения и обрабатывают их, как правило подтверждая успешную обработку, чтобы сообщение было удалено (либо, при сбое, сообщение снова становится видимым для повтора, либо после N неудачных попыток перемещается в очередь недоставленных сообщений (dead-letter queue), чтобы одно «ядовитое» сообщение не блокировало весь конвейер навсегда). Популярные реализации варьируются от очередей задач на базе Redis (BullMQ для Node, Laravel Horizon\u002FRedis-очереди для PHP, Sidekiq для Ruby) для более простых нагрузок до выделенных брокеров вроде RabbitMQ и распределённых систем на основе логов вроде Kafka или AWS SQS\u002FSNS для сценариев с высокой пропускной способностью или множеством потребителей. Практический пример: пользователь загружает 45-минутный эпизод подкаста в AI-сервис транскрибации. Эндпоинт загрузки сохраняет файл, публикует сообщение `{job: \"transcribe\", file_id: \"f_9921\", user_id: \"u_44\"}` в очередь `transcription-jobs` и немедленно возвращает браузеру `202 Accepted`. Пул рабочих процессов, масштабируемый независимо от веб-серверов, забирает задания из очереди, вызывает API распознавания речи, записывает транскрипт в базу данных и отправляет вебхук обратно во фронтенд для обновления интерфейса в реальном времени — то есть веб-сервер, обработавший загрузку, ни на секунду не блокировался на те 3 минуты, что заняла сама транскрибация.","Очередь сообщений — инфраструктура для асинхронного взаимодействия сервисов: один компонент публикует сообщения, другой их потребляет позже.",null,[11,14,17],{"slug":12,"name":13},"data-pipeline","Конвейер данных (Data Pipeline)",{"slug":15,"name":16},"rate-limiting","Ограничение частоты запросов (Rate Limiting)",{"slug":18,"name":19},"redis","Redis",[21,25,28,31,34,38,41,44,47,50,54,57],{"slug":22,"category":5,"name":23,"updated_at":24},"acid","ACID","2026-08-24T02:46:37+00:00",{"slug":26,"category":5,"name":27,"updated_at":24},"ann-search","ANN-поиск (приближённый поиск ближайших соседей)",{"slug":29,"category":5,"name":30,"updated_at":24},"backpressure","Обратное давление (backpressure)",{"slug":32,"category":5,"name":33,"updated_at":24},"batch-processing","Пакетная обработка (Batch Processing)",{"slug":35,"category":5,"name":36,"updated_at":37},"bm25","BM25","2026-08-24T02:46:38+00:00",{"slug":39,"category":5,"name":40,"updated_at":24},"cache","Кэш (Cache)",{"slug":42,"category":5,"name":43,"updated_at":24},"cap-theorem","Теорема CAP (CAP theorem)",{"slug":45,"category":5,"name":46,"updated_at":24},"change-data-capture","Захват изменений данных (CDC)",{"slug":48,"category":5,"name":49,"updated_at":24},"chroma","Chroma",{"slug":51,"category":5,"name":52,"updated_at":53},"chunk-overlap","Перекрытие фрагментов","2026-08-24T03:30:02+00:00",{"slug":55,"category":5,"name":56,"updated_at":24},"columnar-storage","Колоночное хранение",{"slug":58,"category":5,"name":59,"updated_at":24},"connection-pooling","Пулинг соединений (Connection Pooling)"]