Что такое брокеры сообщений?

Брокеры сообщений - это технология связи между приложениями, которая помогает создать общий механизм интеграции для поддержки облачных, основанных на микросервисах, бессерверных и гибридных облачных архитектур.

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

Асинхронный обмен сообщениями относится к типу взаимодействия между приложениями, которое делает возможным брокер сообщений. Это предотвращает потерю ценных данных и позволяет системам продолжать работать даже в условиях прерывистого подключения или проблем с задержкой, типичных для общедоступных сетей. Асинхронный обмен сообщениями гарантирует, что сообщения будут доставлены один раз (и только один раз) в правильном порядке относительно других сообщений.

Модели брокеров сообщений

· Двухточечный обмен сообщениями. Это шаблон распределения, используемый в очередях сообщений с однозначным соотношением между отправителем и получателем сообщения. Каждое сообщение в очереди отправляется только одному получателю и используется только один раз. Обмен сообщениями точка-точка используется, когда сообщение необходимо обработать только один раз. Примеры подходящих вариантов использования этого стиля обмена сообщениями включают расчет заработной платы и обработку финансовых транзакций. В этих системах и отправители, и получатели нуждаются в гарантии того, что каждый платеж будет отправлен один раз и только один раз.

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

Брокеры сообщений против API

API-интерфейсы REST обычно используются для связи между микросервисами. Термин «передача репрезентативного состояния» (REST) ​​определяет набор принципов и ограничений, которым могут следовать разработчики при создании веб-сервисов. Любые службы, которые им соответствуют, смогут обмениваться данными через набор унифицированных общих операторов и запросов без сохранения состояния. Интерфейс прикладного программирования (API) обозначает базовый код, который, если он соответствует правилам REST, позволяет службам взаимодействовать друг с другом.

API-интерфейсы REST используют для связи протокол передачи гипертекста (HTTP). Поскольку HTTP является стандартным транспортным протоколом общедоступного Интернета, API-интерфейсы REST широко известны, часто используются и широко совместимы. Однако HTTP - это протокол запроса / ответа, поэтому его лучше всего использовать в ситуациях, когда требуется асинхронный запрос / ответ. Это означает, что службы, выполняющие запросы через REST API, должны быть рассчитаны на немедленный ответ. Если клиент, получающий ответ, не работает, отправляющая служба будет заблокирована, пока он ожидает ответа. Логика аварийного переключения и обработки ошибок должна быть встроена в обе службы.

Посредники сообщений обеспечивают асинхронную связь между службами, так что отправляющей службе не нужно ждать ответа от принимающей службы. Это повышает отказоустойчивость и отказоустойчивость систем, в которых они используются. Кроме того, использование брокеров сообщений упрощает масштабирование систем, поскольку шаблон обмена сообщениями pub / sub может легко поддерживать изменение количества служб. Брокеры сообщений также отслеживают состояния потребителей.

Брокер против Брокера

На следующей диаграмме показан сценарий с приложениями, отправляющими сообщения друг другу без посредника:

На следующей диаграмме показан сценарий с приложениями, отправляющими сообщения друг другу, с брокером посередине:

Сравнение очередей сообщений

Чтобы претендовать на включение в категорию очереди сообщений (MQ), продукт должен:

А. Упрощение асинхронного обмена сообщениями

Б. Хранение, доставка и удаление сообщений

C. Документирование коммуникационной информации

D. Разрешить административный контроль над разрешениями на обмен сообщениями

8 лучших программ для очереди сообщений (MQ) (популярность)

· Платформа MuleSoft Anypoint

Anypoint Platform ™ от MuleSoft - это ведущее решение для подключения на основе API, которое создает сеть приложений, включающую приложения, данные и устройства, как локально, так и в облаке. Эта гибридная интеграционная платформа включает iPaaS, ESB и унифицированное решение для управления, проектирования и публикации API.

· IBM MQ

IBM MQ, ранее называвшаяся WebSphere MQ, - это безопасное решение для обмена сообщениями, которое быстро передает данные сообщений между приложениями, системами и службами. Он работает как программное обеспечение, на устройстве с высокими техническими характеристиками, в нескольких облаках и на мэйнфрейме. Connect IBM MQ - это соединение приложений, служб и систем, будь то локально, в облаке или и то, и другое. IBM MQ позволяет связывать приложения, написанные сегодня, с приложениями, написанными много лет назад.

· Apache Kafka

Apache Kafka - это платформа обработки потоков с открытым исходным кодом, разработанная Apache Software Foundation, написанная на Scala и Java.

· Планировщик Azure

Планировщик Azure позволяет декларативно описывать действия, выполняемые в облаке. Затем он автоматически планирует и выполняет эти действия. Планировщик Azure позволяет создавать задания в облаке, которые вызывают службы внутри и за пределами Azure, такие как вызов конечных точек HTTP / S или отправка сообщений в очереди хранилища Azure, очереди или темы служебной шины Azure.

· Google Cloud Pub / Sub

Google Cloud Pub / Sub - это полностью управляемая служба обмена сообщениями в реальном времени, которая позволяет отправлять и получать сообщения между независимыми приложениями. Вы можете использовать гибкость Cloud Pub / Sub для разделения систем и компонентов, размещенных на Google Cloud Platform или где-либо еще в Интернете.

· RabbitMQ

RabbitMQ - самый популярный брокер сообщений с открытым исходным кодом, имеющий более 35 000 производственных развертываний по всему миру. RabbitMQ легок и прост в развертывании локально и в облаке и работает во всех основных операционных системах. Он поддерживает большинство платформ разработчиков, несколько протоколов обмена сообщениями и может быть развернут в распределенных и федеративных конфигурациях для удовлетворения требований высокого масштаба и высокой доступности.

· AmazonMQ

Amazon MQ - это управляемая служба брокера сообщений для Apache ActiveMQ, которая упрощает настройку и работу брокеров сообщений в облаке.

· Apache ActiveMQ

Apache ActiveMQ - популярный и мощный сервер шаблонов обмена сообщениями и интеграции с открытым исходным кодом.

Ссылки:

Https://www.ibm.com/cloud/learn/message-brokers

Https://dzone.com/articles/benchmarking-message-queue-latency

Http://wiki.zeromq.org/whitepapers:brokerless