Преимущества использования очередей сообщений в микросервисах | OTUS

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

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

Плюс № 1 -- Decoupling (логическое отделение независимых компонентов друг от друга)

Главная черта микросервисов, как известно, -- это автономность. И очереди сообщений в большинстве случаев действительно помогают снизить зависимости между ними. Ведь, по сути, любое передаваемое в очереди сообщение -- не более, чем массив байтов с определенными метаданными. Метаданные необходимы для направления в конкретную очередь, ну а информация, которая содержится в основной части (то есть в теле) сообщения, может быть почти любой. То есть брокер не анализирует данные, а лишь выступает в роли маршрутизатора. Все это дает возможность настроить взаимодействие между компонентами, которые работают даже на разных платформах/языках.

message_queue_1-1801-86b903.jpg

Плюс № 2 -- улучшение масштабируемости

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

Umnyj_gorod_1-1801-df02e5.jpg

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

Плюс № 3 -- балансировка нагрузки

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

Плюс № 4 -- повышение надежности

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

Однако стоит учесть, что в такой ситуации очередь сама приобретет статус SPoF (Single Point of Failure), следовательно, надо будет заранее предусмотреть действия в случае ее аварийного отключения.

Плюс № 5 -- безопасность

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

По материалам https://mcs.mail.ru/blog/.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто