Введение в очередь сообщений и RabbitMQ

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

Что такое очередь сообщений?

Начнем с определения очередей сообщений; как можно использовать очередь сообщений и какие преимущества достигаются при использовании очередей сообщений.

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

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

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

Роль очереди сообщений в микросервисной архитектуре

В микросервисной архитектуре есть разные функции, разделенные на разные службы, которые предлагают различные функции. Эти сервисы объединены в единое программное приложение.

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

Очередь сообщений выполняет эту задачу, предоставляя службам средства для асинхронной отправки сообщений в очередь и обеспечения их доставки в правильное место назначения. Чтобы реализовать очередь сообщений между службами, вам понадобится брокер сообщений; представьте себе почтальона, который принимает почту от отправителя и доставляет ее по назначению.

Преимущества микросервисной архитектуры

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

Разработка и сопровождение

Представьте, что вам нужно создать огромное громоздкое приложение для выставления счетов, которое будет включать аутентификацию, авторизацию, начисление платы и отчетность по транзакциям. Если вы разделите свое приложение на несколько служб (по одному для каждой функции), вы сможете разделить обязанности, а также предоставить разработчикам свободу писать код для конкретной службы на любом выбранном языке. Кроме того, будет проще поддерживать написанный код или вносить изменения в систему. Например, если вас попросят обновить схему аутентификации, вам нужно будет только добавить код в модуль аутентификации и протестировать его, не беспокоясь о нарушении каких-либо других функций.

Изоляция неисправностей в микросервисе

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

Брокер сообщений - RabbitMQ

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

Начало работы с RabbitMQ на Manifold

Брокер сообщений RabbitMQ может быть создан в Manifold через ресурс CloudAMQP. CloudAMQP автоматизирует каждую часть настройки, запуска и масштабирования кластеров RabbitMQ.

  1. Создайте учетную запись Manifold и проект, если у вас его еще нет.
  2. Создайте ресурс CloudAMQP и привяжите ресурс к проекту. Какой план вы хотите использовать, зависит от ваших потребностей. CloudAMQP предлагает семь различных планов, как для выделенных кластеров, так и для отдельных серверов и виртуальных хостов на общих кластерах.
  3. Вы можете бесплатно попробовать CloudAMQP с планом Little Lemur. Вы также можете выбрать регион для своего экземпляра.

Экземпляр создается в течение 2 минут, и вы можете просмотреть всю информацию о своем экземпляре, открыв панель управления CloudAMQP.

На панели управления содержатся сведения о вашем экземпляре, которые необходимы, когда вы хотите подключиться к очереди сообщений. Руководства по программированию для разных языков можно найти здесь: https://www.cloudamqp.com/docs/index.html

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

Оптимальное руководство RabbitMQ

CloudAMQP создал электронную книгу, которую можно скачать бесплатно: Оптимальное руководство RabbitMQ. Книга разделена на три части;

Первая часть посвящена мягкому введению в микросервисы и RabbitMQ, а также тому, как использовать RabbitMQ в CloudAMQP. Вы узнаете о наиболее важных концепциях RabbitMQ и о том, как RabbitMQ позволяет пользователям создавать продукты, соответствующие всем требованиям, предъявляемым отраслью как сегодня, так и в будущем.

Вторая часть книги предназначена для более продвинутых пользователей. После этого вы сможете в полной мере использовать RabbitMQ. Мы говорим о рекомендациях Best Practice для обеспечения высокой производительности и высокой доступности, а также о типичных ошибках и ошибках RabbitMQ. Это также глубокое погружение в некоторые концепции и функции RabbitMQ.

Третья часть дает несколько реальных пользовательских историй из собственного опыта и точки зрения клиента CloudAMQP.

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

Особая благодарность Ловизе Йоханнсон и остальной команде CloudAMQP за отправку этого сообщения для публикации от их имени в рамках программы Manifold's 12 Days of Services.