flex-height
text-black

Пользователь совершает покупку в интернет-магазине.

Что такое управляемая событиями архитектура?

Интеграционная модель архитектуры на основе событий обнаруживает и обрабатывает важные "события" в реальном времени.

default

{}

default

{}

primary

default

{}

secondary

Определение ориентированной на события архитектуры и ее значение

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

Здесь используется управляемая событиями архитектура (EDA). Вместо ожидания запланированных обновлений или использования жестких, тесно связанных систем управляемая событиями архитектура позволяет приложениям асинхронно взаимодействовать через слабо связанные компоненты. Это означает, что каждая часть системы может действовать независимо, не зная внутренних процессов других, что упрощает масштабирование, адаптацию и инновации.

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

Что такое событие?

Событием является любое действие или изменение состояния, влияющее на бизнес, например, когда клиент проводит кредитную карту, пассажир регистрируется на рейс, пользователь сбрасывает пароль или склад обновляет свои запасы. Подумайте об этом так: событие — это небольшое сообщение, в котором говорится, что «что-то только что произошло», что позволяет другим частям системы реагировать немедленно.

Компании становятся ориентированными на события, когда они могут фиксировать события и реагировать на них по мере их возникновения, что постоянно происходит. Примеры наиболее распространенных событий:

Основные компоненты управляемой событиями архитектуры

Для обеспечения непротиворечивости их структуры схемы событий определяют структуру и формат события, включая поля, содержащиеся в событии, типы данных и правила интерпретации.

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

Брокер событий управляет каналами событий, которые связывают производителей с потребителями, обеспечивают надежную доставку и часто предоставляют такие функции, как фильтрация, сохранение и воспроизведение. Разъединение производителей и потребителей делает систему более устойчивой и масштабируемой.

В очень простой архитектуре с одним производителем и одним потребителем в прямой коммуникации друг с другом, брокеры событий могут быть необязательными. Однако на большинстве предприятий несколько источников рассылают события нескольким потребителям, поэтому необходим брокер или даже сеть брокеров, также известная как «сетка событий». При использовании Event Broker или Event Mesh создается "свободная связь" приложений.

Синхронная и асинхронная коммуникация

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

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

Модели на основе запросов и событий в управляемой событиями архитектуре

В модели, управляемой запросом, взаимодействие начинается с запроса от потребителя события на сервер, и сервер отвечает. Эта модель основана на pull, то есть потребитель активно запрашивает данные или службы с сервера, когда им они нужны, а не получает автоматические обновления, и может быть синхронным или асинхронным. Модели на основе запросов являются распространенными в традиционных веб-приложениях и API.

В управляемой событиями модели взаимодействие начинается с события – изменения состояния или действия, инициирующего обработку, – и компоненты автоматически реагируют при возникновении событий, например, публикация/подписка. Эта модель имеет характерную функцию push-передачи, то есть система автоматически отправляет ("передает") события или обновления потребителям сразу после их возникновения, не дожидаясь, когда потребитель запросит их. Модели на основе событий являются асинхронными, разъединенными и идеально подходят для реагирования в реальном времени.

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

Общие модели управляемой событиями архитектуры

Управляемые событиями модели архитектуры — это общие подходы к проектированию, которые определяют, как управляемая событиями система регистрирует, обрабатывает и использует события. Шаблоны предоставляют многократно используемые стратегии для обработки коммуникации и изменений состояния масштабируемым, разъединенным способом. Организации применяют управляемые событиями шаблоны архитектуры при проектировании и внедрении системы для решения общих задач. К ним относятся распределение событий, непротиворечивость данных и масштабируемость в асинхронных, слабо связанных средах.

Существует четыре основных шаблона передачи событий в управляемой событиями архитектуре:

Стили обработки событий

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

1. Простая обработка событий: потребители обрабатывают каждое событие по мере его получения. Примеры:

2. Обработка сложных событий. Потребители обрабатывают ряд событий для выявления закономерностей и выполнения действий на основе результата. Примеры:

3. Обработка потока событий: потребители обрабатывают и действуют в постоянном потоке данных (данные в движении) в реальном времени с помощью платформы потоковой передачи данных. Примеры:

Компании выбирают стиль обработки событий в реальном времени в соответствии с их индивидуальными потребностями и сценариями использования.

Как работает управляемая событиями архитектура

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

Ниже пошагово показано, как работает управляемая событиями архитектура:

  1. Событие происходит: происходит значимое изменение состояния, например, клиент размещает заказ, датчик обнаруживает скачок температуры или не удается выполнить платеж.
  2. Продюсер события выделяет событие: Приложение, где произошло событие, выступает в роли производителя и публикует его в брокере событий.
  3. Брокер событий направляет событие: Event Broker выступает в качестве посредника для управления каналами событий и доставки события всем заинтересованным потребителям событий, что помогает обеспечить надежную, масштабируемую и разъединенную коммуникацию.
  4. Потребители события реагируют на событие: приложения или сервисы, подписанные на канал событий, обрабатывают событие и принимают соответствующие меры, такие как обновление запаса, отправка электронного сообщения о подтверждении или инициирование предупреждения.

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

Сценарии использования и реальные примеры

Управляемая событиями архитектура обеспечивает современный цифровой опыт в разных отраслях — от банковских операций и розничной торговли до производства и логистики. Благодаря автоматизации на основе ИИ, аналитике событий и реагированию в реальном времени управляемая событиями архитектура помогает организациям модернизировать ИТ, разъединять устаревшие системы и беспрепятственно работать в мультиоблачных средах.

В следующих примерах показано, как работает управляемая событиями архитектура на практике.

Ресторанная промышленность

  1. Студент колледжа размещает заказ на пиццу с помощью приложения для доставки еды. Приложение собирает его основную информацию — имя, адрес, платежную информацию и заказ — и публикует событие «Заказ пиццы».
  2. Ресторан пиццы подписывается на мероприятие, выполняет заказ и публикует собственное мероприятие «заказ готов» обратно в службу доставки еды.
  3. Затем сервис присваивает водителя поставки, планирует предполагаемое время прибытия и предупреждает клиента о том, что его круговая диаграмма в пути.

Электронная коммерция

  1. Онлайн-покупатель вводит данные своей кредитной карты на сайте электронной коммерции, который публикует событие «оплата отправлена».
  2. Платежная система подписывается на событие, обрабатывает платеж и выдает собственное событие "Платеж обработан", указывающее на успех или сбой, и направляет его обратно в пользовательский интерфейс веб-сайта.
  3. В пользовательском интерфейсе отображается статус платежа для клиента и запрашиваются следующие шаги.

Некоторые другие примеры управляемой событиями архитектуры:

телеметрия IoT

Аналитика и анализ событий

Автоматизация

Финансовые операции

Цепочка поставок

Модернизация ИТ и разъединение старых систем

Уведомления

Общие сценарии использования управляемой событиями архитектуры:

Преимущества управляемой событиями архитектуры

Организации могут применять преимущества управляемой событиями архитектуры к своим современным системам. Основные преимущества управляемой событиями архитектуры:

  1. Скорость реагирования в реальном времени и интеллектуальные потоки операций. Управляемая событиями архитектура позволяет системам мгновенно реагировать на события по мере их возникновения, инициируя автоматизированные потоки операций и решения в реальном времени. Это особенно важно в периоды пиковой нагрузки, например, во время крупных мероприятий по продажам или праздничных дней. Организации могут применять эту скорость реагирования к повседневным операциям, улучшая все процессы — от автоматизации цепочки поставок и выявления мошенничества до персонализированного взаимодействия с клиентами.
  2. Скорость и эффективность с помощью асинхронной коммуникации: Приложения в управляемой событиями архитектуре взаимодействуют асинхронно, то есть производители публикуют сообщения о событиях, не дожидаясь их получения потребителями. Такой подход без блокировки повышает производительность, сокращает задержки и позволяет системам обрабатывать огромные объемы событий без узких мест.
  3. Гибкость и масштабируемость благодаря разъединению и свободному соединению: компоненты в управляемой событиями архитектуре разъединены или слабо связаны, поэтому они работают независимо, не полагаясь на доступность друг друга или внутреннюю логику. Это упрощает обновление, тестирование и развертывание сервисов без прерывания работы всей системы. Разъединение также упрощает добавление дополнительных производителей и потребителей по мере необходимости, обеспечивая беспрепятственное масштабирование по мере роста бизнес-потребностей.
  4. Устойчивость и изоляция отказов: при разъединении сервисов сбои в одном компоненте не каскадируются по всей системе. Каждая услуга может завершиться неудачей независимо, что делает архитектуру более прочной и отказоустойчивой, чем традиционные тесно связанные модели.
  5. Готовая к будущему интеграция: слабая связь и асинхронный дизайн делают управляемую событиями архитектуру идеальной для модернизации ИТ, разъединения устаревших систем и мультиоблачных операций. Организации получают гибкость для интеграции новых технологий, таких как автоматизация на основе ИИ и аналитика событий, не переписывая основные системы.

Проблемы, ограничения и передовые практики

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

Проблемы

Как сетка событий вписывается в

Event Mesh — это архитектурная функция, объединяющая несколько брокеров событий в разных гиперскейлерах, а также в частных, гибридных и мультиоблачных средах. Event Mesh предлагает полный набор расширенных сервисов управления событиями, включая потоковую передачу событий, управление событиями, мониторинг, динамическую маршрутизацию сообщений и детальную фильтрацию. Объединяя брокеров событий в распределенную сетку, организации могут:

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

Ограничения управляемой событиями архитектуры

Лучшие практики в области архитектуры, ориентированной на события

Характеристики управляемой событиями архитектуры

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

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

Часто задаваемые вопросы

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

Основное отличие архитектур на основе событий и запросов заключается в том, как системы взаимодействуют и реагируют на изменения. В модели на основе запроса взаимодействие начинается, когда потребитель запрашивает данные или действие с сервера, а сервер отвечает. Эта модель обычно синхронная, то есть автор запроса ожидает (блокирует) до получения ответа, и основана на pull, то есть приложения получают обновления, только когда они запрашивают их.

В модели на основе событий взаимодействие начинается, когда происходит событие — значимое изменение состояния в бизнес-системе — и приложения автоматически реагируют. Управляемые событиями системы являются асинхронными, поэтому производители публикуют события, не дожидаясь ответа потребителя. Эта модель на основе push позволяет приложениям работать независимо и обрабатывать события в реальном времени в распределенных, гибридных и мультиоблачных средах.

Каковы основные компоненты управляемой событиями архитектуры?

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

  • Производители: приложения, которые создают или фиксируют события, такие как обновления заказов, платежи и показания датчиков, и публикуют их в управляемой событиями системе
  • Потребители: подписывайтесь, обрабатывайте события и реагируйте на них, инициируя потоки операций, обновляя данные, отправляя уведомления или инициируя последующие процессы.
  • Брокеры событий: промежуточное ПО для обмена сообщениями, которое направляет события от производителей потребителям, предоставляя такие возможности, как надежная доставка, фильтрация, динамическая маршрутизация, устойчивость и воспроизведение
  • Каналы событий: путь, которым управляет Event Broker, который соединяет производителей и потребителей: производители публикуют события на канале, а потребители подписываются на релевантные для них каналы
Каковы общие модели управляемой событиями архитектуры?

Шаблоны архитектуры на основе событий представляют собой многократно используемые подходы к проектированию, которые определяют, как события регистрируются, маршрутизируются, хранятся и используются в управляемой событиями системе. Основные модели архитектуры на основе событий:

  • Публикация/подписка (pub/sub): производители публикуют события в канале, и несколько потребителей подписываются и реагируют автоматически.
  • Потоковая передача событий: производители публикуют непрерывные потоки событий для брокера, и потребители могут читать, воспроизводить или обрабатывать эти события в любой точке потока.
  • Сегрегация ответственности за запросы команд (CQRS): операции чтения и записи разделяются на разные модели для асинхронного распространения обновлений.
  • Поиск событий: Системы хранят каждое изменение состояния как неизменяемое событие в дополнительном журнале, а затем восстанавливают текущее состояние, воспроизводя события.
Каковы преимущества использования управляемой событиями архитектуры?

Основные преимущества использования ориентированной на события архитектуры:

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