2.39M
Category: softwaresoftware

Очереди сообщений. Занятие 16

1.

PROMO IT
Курс «Системный аналитик»
Системная аналитика.
Архитектура.
Занятие 16. Очереди сообщений
8 495 404 25 63
[email protected]
promo-z.ru

2.

Курс «Системный аналитик»
PROMO IT
Синхронное
взаимодействие
Синхронным (synchronous) называется
такое взаимодействие между компонентами,
при котором клиент, отослав запрос,
блокируется и может продолжать работу
только после получения ответа от сервера. По
этой причине такой вид взаимодействия
называют иногда блокирующим (blocking).
[email protected]

3.

Плюсы синхронного
взаимодействия
Курс «Системный аналитик»
PROMO IT
-
Простота. Синхронное взаимодействие проще в реализации и
отладке.
-
Прозрачность. Синхронное взаимодействие позволяет легко
отслеживать и управлять последовательностью выполнения
операций.
[email protected]

4.

Минусы синхронного
взаимодействие
Курс «Системный аналитик»
PROMO IT
-
Зависимость от доступности. Если вызываемый микросервис
недоступен или работает медленно, это может привести к задержкам и
блокировкам в клиентском микросервисе.
-
Узкое место. Если синхронные вызовы выполняются последовательно,
это может стать узким местом производительности.
[email protected]

5.

Курс «Системный аналитик»
PROMO IT
Асинхронное
взаимодействие
Асинхронное взаимодействие систем – это процесс, при
котором каждая часть системы работает не
заблокировавшись на ожидание ответа от другой части
системы. Это означает, что в то время, когда одна часть
системы ждет ответа, другие части могут продолжать
работу.
[email protected]

6.

Плюсы асинхронного
взаимодействия
-
-
Курс «Системный аналитик»
PROMO IT
Отказоустойчивость. Асинхронное взаимодействие позволяет
избежать блокировки клиентского микросервиса при недоступности
вызываемого микросервиса.
Масштабируемость. Асинхронное взаимодействие может быть
параллельным, что способствует лучшей масштабируемости системы.
[email protected]

7.

Минусы асинхронного
взаимодействия
-
-
Курс «Системный аналитик»
PROMO IT
Сложность. Асинхронное взаимодействие требует более сложной
реализации, так как необходимо обрабатывать асинхронные ответы и
управлять состоянием запросов.
Усложнение отладки. Отслеживание и отладка асинхронного
взаимодействия может быть сложнее из-за распределения запросов и
ответов во времени.
[email protected]

8.

Очереди сообщений
Курс «Системный аналитик»
PROMO IT
Очередь сообщений – это форма асинхронной коммуникации между
сервисами, применяемая в бессерверных и микросервисных архитектурах.
Сообщения хранятся в очереди, пока не будут обработаны и удалены.
[email protected]

9.

Брокер сообщений
Курс «Системный аналитик»
PROMO IT
Брокер сообщений — архитектурный паттерн в распределённых системах;
приложение, которое преобразует сообщение по одному протоколу от
приложения-источника в сообщение протокола приложения-приёмника, тем
самым выступая между ними посредником.
Брокер сообщений
[email protected]

10.

RabbitMQ
Курс «Системный аналитик»
PROMO IT
RabbitMQ — распределённый и горизонтально масштабируемый брокер
сообщений.
• producer – отправитель сообщения или издатель;
• message – само сообщение;
• exchange (обменник или точка обмена) – в него отправляются сообщения; обменник
распределяет сообщение в одну или несколько очередей, маршрутизирует сообщения в
очередь на основе созданных связей (binding*) между ним и очередью;
• binding (привязка) — правило, которое сообщает точке обмена в какую из очередей эти
сообщения должны попадать; обменник и очередь могут быть связаны несколькими
привязками
• queue (очередь) – структура данных на диске или в оперативной памяти, которая хранит
ссылки на сообщения и отдает копии сообщений потребителям (одна очередь может
использоваться несколькими потребителями);
• consumer – исполнитель или потребитель, который из этой очереди что-то заберёт и
что-то сделает.
[email protected]

11.

RabbitMQ
Курс «Системный аналитик»
PROMO IT
1) издатель отправляет сообщение определенному
обменнику;
2) обменник, получив сообщение, маршрутизирует его в
одну или несколько очередей в соответствии с правилами
привязки между ним и очередью;
3) очередь хранит ссылку на это сообщение, само
сообщение хранится в оперативной памяти или на диске;
4) как только потребитель готов получить сообщение из
очереди, сервер создает копию сообщения по ссылке и
отправляет;
5) потребитель получает сообщение и отправляет брокеру
подтверждение;
6) брокер, получив подтверждение, удаляет копию
сообщения из очереди, затем удаляет из оперативной
памяти и с диска.
[email protected]

12.

RabbitMQ
Курс «Системный аналитик»
PROMO IT
Отправка чека клиенту после оплаты:
producer - сервис по оплате
message - сам чек и кому отправить
exchange - notification
binding - notification.web-lk, notification.email
queue (очередь) - send-push, send-email
consumer Сервис отправки уведомлений в личный кабинет
Сервис отправки сообщений на почту
[email protected]

13.

RabbitMQ
Курс «Системный аналитик»
PROMO IT
метод Push — отправку уведомления получателю в
момент прихода сообщения.
[email protected]

14.

Apache Kafka
Курс «Системный аналитик»
PROMO IT
Apache Kafka — распределенный брокер сообщений, работающий в
стриминговом режиме.
[email protected]

15.

Apache Kafka
Курс «Системный аналитик»
PROMO IT
метод Pull
подразумевает
периодический опрос
очереди получателем по
поводу наличия новых
сообщений;
[email protected]

16.

RabbitMQ или Kafka — что
выбрать?
Курс «Системный аналитик»
PROMO IT
Выбирайте RabbitMQ, если вам нужна гибкость маршрутизации, а порядок доставки
сообщений безразличен.
Apache Kafka, в свою очередь, подойдёт идеально, если работаете с большими
нагрузками (mission and business critical системы), важна масштабируемость, доставка
сообщений в правильном порядке и возможность просматривать историю сообщений.
[email protected]

17.

Практика!
8 495 404 25 63
[email protected]
Курс «Системный аналитик»
PROMO IT
promo-z.ru

18.

PROMO IT
Курс «Системный аналитик»
Полезные материалы
https://tproger.ru/articles/pochemu-my-ispolzuem-kafka-vmesto-rabbitmq-sravnenie-ipreimushhestva
https://slurm.io/blog/tpost/phdmogo9y1-rabbitmq-i-apache-kafka-chto-vibrat-i-mo
https://mcs.mail.ru/blog/zachem-nuzhny-ocheredi-soobshcheniy-v-mikroservisnoy-arkhitekture
8 495 404 25 63
[email protected]
promo-z.ru
English     Русский Rules