Wzorce zdarzeniowe z EventBridge

Wdrażanie aplikacji na AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Jedno zamówienie, cztery reakcje

  • Jedno zamówienie musi trafić do rozliczeń, realizacji, analityki i e-maila
  • Bezpośrednie wywołania wszystkich czterech są kruche i wolne
  • Jedno zdarzenie dociera do każdego odbiorcy

Jedno zdarzenie rozchodzące się z centralnego tematu do wielu usług downstream równolegle

Wdrażanie aplikacji na AWS

Jak wybrać właściwą usługę komunikacyjną

Siatka 2x2 usług komunikacyjnych AWS: kolejka SQS z przepływem producent-konsument, fanout pub-sub SNS do wielu subskrybentów, szyna zdarzeń EventBridge z routingiem opartym na regułach oraz Kinesis z uporządkowanymi shardami i możliwością odtwarzania

  • SQS: jedna kolejka, jedna grupa konsumentów, co najmniej raz
  • SNS: pub/sub, wyślij jedną wiadomość do wielu subskrybentów
  • EventBridge: routing zdarzeń na podstawie treści do wielu celów
  • Kinesis Data Streams: uporządkowany, odtwarzalny strumień danych
Wdrażanie aplikacji na AWS

Wzorzec fanout

  • Jedno zdarzenie musi dotrzeć jednocześnie do kilku konsumentów
  • Publikujesz do tematu SNS
  • Każda kolejka SQS subskrybuje temat
  • Każdy konsument dostaje własną kopię, niezależnie

Wzorzec fanout SNS→SQS: jeden temat SNS publikuje do wielu kolejek SQS, każda kolejka niezależnie obsługuje własnego konsumenta we własnym tempie

Wdrażanie aplikacji na AWS

Filtrowanie — konsumenci dostają tylko to, czego potrzebują

  • Bez filtrów każdy subskrybent otrzymuje każde zdarzenie
  • Polityki filtrowania subskrypcji SNS: filtrowanie po atrybutach wiadomości
  • Filtry treści EventBridge: dopasowanie na podstawie pól zdarzenia
  • Każdy konsument otrzymuje tylko swoje zdarzenia

Polityka filtrowania subskrypcji SNS i filtr treści EventBridge: każdy konsument otrzymuje tylko zdarzenia pasujące do jego reguły filtrowania, co ogranicza zbędne przetwarzanie i koszty

Wdrażanie aplikacji na AWS

Routing z EventBridge

Diagram routingu EventBridge: szyna zdarzeń odbierająca zdarzenia z wielu źródeł, reguły dopasowujące wzorce zdarzeń oraz dopasowane zdarzenia kierowane do Lambda, SQS i innych usług docelowych

  • Szyna zdarzeń: odbiera zdarzenia z wielu źródeł
  • Reguła: wzorzec zdarzenia dopasowujący określone zdarzenia
  • Cel: miejsce, do którego trafiają dopasowane zdarzenia
  • Jedno zdarzenie może być kierowane do wielu celów
Wdrażanie aplikacji na AWS

Przesyłanie strumieniowe z Kinesis Data Streams

  • Ciągły, czasu rzeczywistego strumień rekordów
    • Rekordy uporządkowane w ramach shardu
    • Odtwarzalność: konsumenci mogą czytać od dowolnego punktu
    • Wielu konsumentów czyta ten sam strumień niezależnie
    • Zastosowania: clickstream, telemetria, dane o wysokiej przepustowości

Architektura Kinesis Data Streams: producenci zapisują uporządkowane rekordy do ponumerowanych shardów, trzech konsumentów niezależnie odczytuje z różnych pozycji, strzałka przewijania pokazuje możliwość odtwarzania

Wdrażanie aplikacji na AWS

Lambda jako konsument zdarzeń

  • Lambda może być wyzwalana przez SQS, SNS, EventBridge, Kinesis
  • Mapowanie źródeł zdarzeń odpytuje SQS i Kinesis automatycznie
  • SNS i EventBridge wypychają zdarzenia do Lambda
  • Przetwarzanie niemal w czasie rzeczywistym bez zarządzania serwerami

Lambda wyzwalana przez cztery źródła zdarzeń: mapowanie źródeł odpytuje SQS i Kinesis partiami, a SNS i EventBridge bezpośrednio wypychają zdarzenia do Lambda

Wdrażanie aplikacji na AWS

Czas na praktykę!

Wdrażanie aplikacji na AWS

Preparing Video For Download...