Ответ 1
На самом деле нет официального определения того, что такое брокером JMS, но существует концептуальная разница между очередью сообщений и брокером. Вот мое занятие.
- В очереди сообщений просматриваются заголовки сообщений, чтобы выяснить, куда отправить сообщение, очередь сообщений не проверяет тело сообщения или не выполняет какой-либо код, который преобразует содержимое тела сообщения. Миссия очереди сообщений - доставлять сообщение, в конце концов, один раз и только один раз, и для того, чтобы они были отправлены.
- Брокер сообщений предоставляет среду программирования, в которой вы можете легко и эффективно писать код преобразования сообщений. Например, вам может потребоваться преобразовать содержимое сообщения из формата A в формат B, и вы не хотите, чтобы старые клиенты, которые использовали формат A, должны были быть переписаны, поэтому вы пишете программу трансляции сообщений и развертываете ее в сообщении маклер. В этом случае
message broker
будет отдельным процессом, который может выполняться на отдельной машине, которая отвечает за запуск кода обработки сообщений.
Большое значение брокеров сообщений заключается в том, что они могут делать некоторые действительно приятные вещи для обработки сообщений одновременно, сбоя для обработки логики, развертывания логики обработки, мониторинга и ведения журнала... и т.д. Подумайте о брокере сообщений как специализированный сервер приложений для написания кода обработки сообщений, возможно, на пользовательском языке высокого уровня. Например, брокер сообщений IBM может быть запрограммирован в ESQL расширением SQL вместе с диаграммами и узлами, которые вы связываете друг с другом. Программы, написанные для сообщения borker, будут короче, чем если бы вы написали весь код самостоятельно, используя простой JMS.
Брокеры могут быть централизованы или распределены, поэтому, например, у вас может быть центральный брокер в Нью-Йорке, к которому подключены клиенты в Лондоне и Гонконге. Или вы могли бы распространить брокера и иметь экземпляр, работающий в Лондоне и Гонконге, который обрабатывает сообщения ближе к источнику/получателю сообщения, все это будет зависеть от вашей инфраструктуры управления и от каких-либо других ресурсов, таких как базы данных, брокера сообщений нужно поговорить.