Loading AI tools
Из Википедии, свободной энциклопедии
Очередь сообщений (или почтовый ящик) — в информатике — программно-инженерный компонент, используемый для межпроцессного или межпотокового взаимодействия внутри одного процесса. Для обмена сообщениями используется очередь.
Парадигма очереди сообщений сродни шаблону «издатель — подписчик» и обычно является частью более крупной системы промежуточного программного обеспечения, ориентированной на обработку сообщений. Большинство систем обмена сообщениями в своих API поддерживают модели как очереди сообщений, так и «издатель — подписчик».
Очереди сообщений предоставляют асинхронный протокол передачи данных, означая, что отправитель и получатель сообщения не обязаны взаимодействовать с очередью сообщений одновременно. Размещённые в очереди сообщения хранятся до тех пор, пока получатель не получит их.
Очереди сообщений имеют неявные или явные ограничения на размер данных, которые могут передаваться в одном сообщении, и количество сообщений, которые могут оставаться в очереди.
Многие реализации очередей сообщений функционируют внутренне: внутри операционной системы или внутри приложения. Такие очереди существуют только для целей этой системы.
Другие реализации позволяют передавать сообщения между различными компьютерными системами, потенциально подключая несколько приложений и несколько операционных систем. Эти системы очередей сообщений обычно обеспечивают расширенную функциональность для обеспечения устойчивости, чтобы гарантировать, что сообщения не будут «потеряны» в случае сбоя системы.
Для реализации очереди сообщений системный администратор устанавливает и настраивает программное обеспечение для организации очередей сообщений (диспетчер очереди или брокер) и определяет именованную очередь сообщений. Или они регистрируются в службе очередей сообщений.
Затем приложение регистрирует программную процедуру, которая «слушает» сообщения, помещённые в очередь.
Второе и последующие приложения могут подключаться к очереди и передавать на неё сообщение.
Программное обеспечение менеджера очередей сохраняет сообщения до тех пор, пока принимающее приложение не подключится, а затем вызовет зарегистрированную программную процедуру. Затем приложение-получатель обрабатывает сообщение соответствующим образом.
Существует множество вариантов точной семантики передачи сообщений, в том числе:
Все эти факторы могут существенно повлиять на семантику транзакций, надёжность и эффективность системы.
Исторически очередь сообщений использовала собственные закрытые протоколы, которые ограничивали способность различных операционных систем или языков программирования взаимодействовать в гетерогенном множестве сред.
Появились три стандарта, которые используются в реализациях очереди сообщений с открытым исходным кодом:
Эти протоколы находятся на разных стадиях стандартизации и реализации. Первые два работают на том же уровне, что и HTTP, MQTT на уровне TCP/IP.
Многие из широко известных протоколов связи используются синхронно. Протокол HTTP, используемый во Всемирной паутине и в веб-сервисах, предлагает наглядный пример, когда пользователь отправляет запрос на веб-страницу, а затем ждёт ответа.
Однако существуют сценарии, в которых синхронное поведение не подходит. Например, AJAX (асинхронный JavaScript и XML) можно использовать для асинхронной отправки текстовых, JSON- или XML-сообщений для обновления части веб-страницы с более релевантной информацией.
В UNIX есть 2 распространенные реализации очередей. Одна является частью SYS V API, а другая — часть POSIX.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.