Научная статья на тему 'ИССЛЕДОВАНИЕ БРОКЕРОВ СООБЩЕНИЙ В ПРИЛОЖЕНИЯХ С МИКРО-СЕРВИСНОЙ АРХИТЕКТУРОЙ'

ИССЛЕДОВАНИЕ БРОКЕРОВ СООБЩЕНИЙ В ПРИЛОЖЕНИЯХ С МИКРО-СЕРВИСНОЙ АРХИТЕКТУРОЙ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
0
0
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
микросервисы / брокеры сообщений / технологии / microservices / Apache Kafka / RabbitMQ / message brokers

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Тришин Е.А.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

BROKER RESEARCH MESSAGES IN APPLICATIONS WITH MICRO-SERVICE ARCHITECTURE

The work examined and compared two popular message brokers RabbitMQ and Apache Kafka. The focus was on their architecture, functionality, performance and application in various scenarios.

Текст научной работы на тему «ИССЛЕДОВАНИЕ БРОКЕРОВ СООБЩЕНИЙ В ПРИЛОЖЕНИЯХ С МИКРО-СЕРВИСНОЙ АРХИТЕКТУРОЙ»

УДК 004.9

Тришин Е.А.

студент

Рязанский государственный радиотехнический университет

им. В.Ф. Уткина (г. Рязань, Россия)

ИССЛЕДОВАНИЕ БРОКЕРОВ СООБЩЕНИЙ В ПРИЛОЖЕНИЯХ С МИКРО-СЕРВИСНОЙ АРХИТЕКТУРОЙ

Аннотация: в работе были рассмотрены и сравнены два популярных брокера сообщений — RabbitMQ и Apache Kafka. Основное внимание уделялось их архитектуре, функциональным возможностям, производительности и применению в различных сценариях.

Ключевые слова: микросервисы, брокеры сообщений, технологии.

Введение.

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

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

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

подобного сценария, используют асинхронное взаимодействие, когда клиент отправляет большой запрос, а потом позволяет пользователю позволяет дальше просматривать сайт, но возникает проблема, как убедиться, что сервис на стороне сервера получил запроса и рано или поздно его обработает?

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

Рисунок 1. Схема асинхронной модели.

RabbitMQ — это брокер распределенных сообщений, который собирает потоковые данные из нескольких источников и маршрутизирует их в разные пункты назначения для обработки. Передача основана на протоколе AMQP (Advanced Message Queuing Protocol) - это открытый протокол передачи сообщений, который нужен для общения разных частей системы между собой. Архитектура представлена на рисунке 2.

Рисунок 2. Архитектура RabbitMQ.

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

Рисунок 3. Архитектура Apache Kafka. Сравнение брокеров.

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

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

Самой важной частью брокеров сообщений является производительность, используя написанные предложения произведем замеры пропускной способности, насколько каждая система близка к передаче сообщений в реальном времени, включая конечные задержки до 99.9 процентиля, таким образом Kafka обеспечивает наилучшую пропускную способность (605 Мб/с) при наименьших задержках(5 мс), при более низкой пропускной способности (38 Мб/с) доставляет сообщения с очень низкими задержками (1 мс), результаты представлены на рисунках 4-5.

Рисунок 4. График пропускной способности.

£0.00 Ч W.0Q % ».00 * ».М №

Процентиль

■ Kafka - 200К ■ RabbitMO • ÍOK

Рисунок 5. График задержек.

Заключение.

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

Проведенные тесты и анализ показали, что Apache Kafka превосходит RabbitMQ в сценариях с высокими объемами данных и требованиями к пропускной способности. Kafka более эффективен при работе с большими потоками данных, благодаря своей архитектуре и механизму партиционирования. Также, RabbitMQ предлагает более широкие возможности для настройки маршрутизации сообщений, что делает его удобным для сложных сценариев обмена сообщениями. Kafka, в свою очередь, предоставляет мощные инструменты для обработки потоков данных и гарантирует высокую надежность доставки сообщений за счет своей архитектуры хранения и репликации.

СПИСОК ЛИТЕРАТУРЫ:

1. Дилан Скотт, Виктор Гамов, Дейв Клейн. Kafka в действии / пер. с англ. А.Н. Киселева. - М.: ДМК Пресс, 2022 - 310 с.: ил;

2. Aleksey Gureiev, Mary Moore RabbitMQ in Microservice Architecture / Aleksey Gureiev, Mary Moore [Электронный ресурс] // shakuro: [сайт]. — URL: https://shakuro.com/blog/rabbitmq-in-microservice-architecture;

3. Амбалова Зарина Битва брокеров сообщений: RabbitMQ, Kafka, AWS SNS/SQS / Амбалова Зарина [Электронный ресурс] // Хабр: [сайт]. — URL: https://habr.com/ru/companies/yandex_praktikum/articles/700608

Trishin E.A.

Ryazan State Radio Engineering University (Ryazan, Russia)

BROKER RESEARCH MESSAGES IN APPLICATIONS WITH MICRO-SERVICE ARCHITECTURE

Abstract: the work examined and compared two popular message brokers - RabbitMQ and Apache Kafka. The focus was on their architecture, functionality, performance and application in various scenarios.

Keywords: microservices, Apache Kafka, RabbitMQ, message brokers.

i Надоели баннеры? Вы всегда можете отключить рекламу.