Тема: Event-driven архитектура. Построить систему на основе событий для слабосвязанных компонентов.
Что такое Event-driven архитектура?
Преимущества EDA
Компоненты EDA
Слабосвязанные компоненты в EDA
Шаги построения системы (Часть 1)
Шаги построения системы (Часть 2)
Инструменты для EDA
Примеры использования EDA
Вызовы в EDA
Лучшие практики
Заключение
2.16M
Категория: ПрограммированиеПрограммирование

Событийно-ориентированная архитектура (EDA) — система для слабосвязанных компонентов

1. Тема: Event-driven архитектура. Построить систему на основе событий для слабосвязанных компонентов.

ТЕМА: EVENT-DRIVEN АРХИТЕКТУРА.
ПОСТРОИТЬ СИСТЕМУ НА ОСНОВЕ
СОБЫТИЙ ДЛЯ СЛАБОСВЯЗАННЫХ
КОМПОНЕНТОВ.
СТУДЕНТ ГРУППЫ 717-21 – ТУРСУНОВ МАХМУДЖОН

2. Что такое Event-driven архитектура?

ЧТО ТАКОЕ EVENT-DRIVEN АРХИТЕКТУРА?
• Event-driven архитектура (EDA)
— это парадигма
проектирования ПО, где
компоненты системы
взаимодействуют через события.
События — это изменения
состояния, которые публикуются
и потребляются асинхронно.В
EDA приложения реагируют на
события в реальном времени,
что обеспечивает гибкость и
масштабируемость.

3. Преимущества EDA

ПРЕИМУЩЕСТВА EDA
• Масштабируемость: Легко добавлять новые
компоненты без изменения существующих.
• Гибкость: Компоненты независимы, что
упрощает обновления.
• Реактивность: Реальное время обработки
событий.
• Отказоустойчивость: Системы продолжают
работать при сбоях в отдельных частях.
• EDA идеальна для микросервисов и
распределённых систем.

4. Компоненты EDA

КОМПОНЕНТЫ EDA
• События (Events): Данные о
изменениях (например, "заказ
создан").Производители
(Producers): Генерируют
события.Потребители (Consumers):
Подписываются и реагируют на
события.Брокер событий (Event
Broker): Центральный узел для
маршрутизации (например, Kafka,
RabbitMQ).

5. Слабосвязанные компоненты в EDA

СЛАБОСВЯЗАННЫЕ КОМПОНЕНТЫ В EDA
• Слабосвязанность (loose
coupling) означает, что
компоненты не зависят друг от
друга напрямую. В EDA они
общаются только через события,
без жёстких
ссылок.Преимущества: Легкость
в тестировании, развертывании
и масштабировании. Изменение
одного компонента не влияет на
другие.

6. Шаги построения системы (Часть 1)

ШАГИ ПОСТРОЕНИЯ СИСТЕМЫ (ЧАСТЬ 1)
• Определите события: Идентифицируйте
ключевые изменения в системе
(например, "пользователь
зарегистрирован").
• Выберите брокер: Решите, использовать
Kafka для долговечности или RabbitMQ
для очередей.
• Разработайте производителей:
Настройте компоненты для публикации
событий.

7. Шаги построения системы (Часть 2)

ШАГИ ПОСТРОЕНИЯ СИСТЕМЫ (ЧАСТЬ 2)
• Разработайте потребителей:
Подпишите их на релевантные
события для обработки.Обеспечьте
обработку ошибок: Реализуйте retry,
dead-letter queues.Мониторинг и
масштабирование: Используйте
инструменты для отслеживания
потоков событий.
• Тестируйте на асинхронность и
отказоустойчивость.

8. Инструменты для EDA

ИНСТРУМЕНТЫ ДЛЯ EDA
• Apache Kafka: Для
высокопроизводительных потоков
событий, долговечности.
• RabbitMQ: Для гибких очередей и
маршрутизации.
• AWS SNS/SQS: Облачные сервисы
для простоты.
• Pulsar: Комбинация очередей и
стриминга.

9. Примеры использования EDA

ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ EDA
• Микросервисы: Обновление заказов
вызывает события для оплаты и
доставки.
• IoT: Устройства публикуют события о
статусе, потребители анализируют.
• E-commerce: События о корзине для
рекомендаций и уведомлений.
• EDA обеспечивает слабосвязанность в
распределённых системах.

10. Вызовы в EDA

ВЫЗОВЫ В EDA
• Сложность отладки: Асинхронность
затрудняет трассировку.
• Гарантии доставки: Обработка
дубликатов и потерь.
• Масштабирование брокера: Высокие
нагрузки требуют кластеризации.
• Согласованность данных:
Используйте паттерны вроде Saga.

11. Лучшие практики

ЛУЧШИЕ ПРАКТИКИ
• Дизайн событий: Делайте их
самодостаточными и
версионированными.
• Безопасность: Шифруйте события и
управляйте доступом.
• Тестирование: Используйте unit-тесты для
производителей/потребителей.
• Документация: Описывайте схемы
событий.

12. Заключение

ЗАКЛЮЧЕНИЕ
• Event-driven архитектура позволяет строить слабосвязанные, масштабируемые
системы на основе событий. Начните с определения событий и выбора
инструментов для реализации.
• EDA — ключ к современным распределённым приложениям.
English     Русский Правила