Події та шаблони з EventBridge

Розгортання застосунків в AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Одне замовлення — чотири реакції

  • Одне замовлення має потрапити до білінгу, фулфілменту, аналітики й ел.пошти
  • Прямі виклики до всіх чотирьох — крихкі та повільні
  • Одна подія розсилається всім споживачам

Одна подія розгалужується з центральної теми до кількох підлеглих сервісів паралельно

Розгортання застосунків в AWS

Як обрати потрібний сервіс повідомлень

Сітка 2x2 сервісів обміну повідомленнями AWS: черга SQS з потоком виробник-споживач, SNS pub/sub з розсилкою багатьом підписникам, EventBridge — шина подій із маршрутизацією за правилами, та Kinesis — впорядковані шарди з перемотуванням

  • SQS: одна черга, одна група споживачів, принаймні один раз
  • SNS: pub/sub, надсилає одне повідомлення багатьом підписникам
  • EventBridge: маршрутизує події за вмістом до багатьох цілей
  • Kinesis Data Streams: впорядкований, з можливістю перемотування стримінг
Розгортання застосунків в AWS

Шаблон розсилки (fanout)

  • Одна подія має дістатися кільком споживачам одночасно
  • Опублікуйте в тему SNS
  • Кожна черга SQS підписується на тему
  • Кожен споживач отримує свою копію, без жорстких зв'язків

Шаблон fanout SNS→SQS: одна тема SNS публікує до кількох черг SQS, кожна черга незалежно обслуговує свого споживача у власному темпі

Розгортання застосунків в AWS

Фільтрація: кожному — лише потрібні події

  • Без фільтрів кожен підписник отримує кожну подію
  • Політики фільтрів підписки SNS: фільтр за атрибутами повідомлень
  • Фільтри вмісту EventBridge: збіг за полями події
  • Кожен споживач отримує лише релевантні події

Політика фільтра підписки SNS і фільтр вмісту EventBridge: кожен споживач отримує лише події, що відповідають його правилу, зменшуючи зайву обробку та витрати

Розгортання застосунків в AWS

Маршрутизація з EventBridge

Схема маршрутизації EventBridge: шина подій отримує події з багатьох джерел, правила співставляють шаблони подій, відповідні події надсилаються до Lambda, SQS та інших цілей

  • Event bus: приймає події з багатьох джерел
  • Rule: шаблон події, що збігається з певними подіями
  • Target: куди надсилаються події зі збігом
  • Одна подія може йти до кількох цілей
Розгортання застосунків в AWS

Стримінг із Kinesis Data Streams

  • Безперервний, майже реальний час потік записів
    • Впорядковані записи в межах шарду
    • З можливістю перемотування: споживачі перечитують із будь-якої точки
    • Кілька споживачів читають той самий стрим незалежно
    • Для клікстриму, телеметрії, високої пропускної здатності

Архітектура Kinesis Data Streams: продюсери пишуть впорядковані записи в пронумеровані шарди, три споживачі незалежно читають у різних позиціях, зі стрілкою перемотування для повторного читання

Розгортання застосунків в AWS

Lambda як споживач подій

  • Lambda може спрацьовувати від SQS, SNS, EventBridge, Kinesis
  • Event source mapping опитує SQS і Kinesis за вас
  • SNS та EventBridge push-ять події до Lambda
  • Майже реальний час без керування серверами

Lambda запускається від чотирьох джерел подій: відображення джерела подій опитує SQS і Kinesis пакетами, тоді як SNS і EventBridge пушать події безпосередньо в Lambda

Розгортання застосунків в AWS

Давайте потренуємось!

Розгортання застосунків в AWS

Preparing Video For Download...