Похожие презентации:
Событийно-ориентированная архитектура (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 — ключ к современным распределённым приложениям.
Программирование