digital-garden/dev/architecture/Событийно-ориентированная архитектура.md
Struchkov Mark ffd249fc10
All checks were successful
continuous-integration/drone/push Build is passing
Обновление
2024-12-11 20:30:18 +03:00

6.6 KiB
Raw Blame History

aliases tags date
event-driven
событийно-ориентированную архитектуру
событийно-ориентированному подходу
Событийно-ориентированная архитектура
событийную архитектуру
Событийная архитектура
maturity/🌱
2024-03-19

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

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

Ключевые элементы событийно-ориентированной архитектуры:

  1. События (Events): Представляют собой факты или изменения состояния, которые происходят в системе. Например, поступление сообщения в ../../../../_inbox/00 Kafka, нажатие кнопки в пользовательском интерфейсе или обновление данных в хранилище.
  2. Обработчики событий (Event Handlers): Компоненты или сервисы, которые "подписываются" на определённые типы событий и выполняют определённые действия в ответ на их возникновение. Обработчиком может быть микросервис, вызов функции или запуск определённой логики в реакцию на сигнал.
  3. Цикл обработки событий (Event Loop) или Механизм распределения событий: Центральный элемент, отвечающий за получение событий, их маршрутизацию и передачу нужным обработчикам. В распределённых системах его роль часто выполняет брокер сообщений или ../../../../_inbox/Enterprise Service Bus.
  4. Очередь событий (Event Queue): Средство для буферизации и упорядочивания событий при высокой нагрузке или одновременном возникновении большого числа сигналов. Очередь обеспечивает последовательную, контролируемую обработку и повышает надёжность системы.

Какие задачи хорошо решает событийно-ориентированная архитектура:

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

Основные компоненты архитектуры:

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

Преимущества:

  • Изоляция компонентов: каждый сервис может развиваться и масштабироваться независимо от других.
  • Простота развёртывания и интеграции новых сервисов за счёт слабой Связность.
  • Высокая производительность и масштабируемость: возможность обработки большого количества асинхронных операций в параллель.
  • Лёгкая адаптация под изменяющиеся потребности и нагрузки.

Недостатки:

  • Сложность тестирования, поскольку трудно контролировать и предсказать порядок возникновения и обработки событий.
  • Повышенная сложность разработки и отладки из-за асинхронной природы взаимодействий между компонентами.

Мета информация

Область:: ../../meta/zero/00 Архитектура ИС Родитель:: Архитектурный паттерн Источник:: Автор:: Создана:: 2204-03-19

Дополнительные материалы

Дочерние заметки