Vzory řízené událostmi s EventBridge

Nasazování aplikací na AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Jedna objednávka, čtyři reakce

  • Jedna objednávka musí dorazit do fakturace, skladu, analytiky i e-mailu
  • Přímá volání na všechny čtyři jsou křehká a pomalá
  • Jedna událost se rozešle každému příjemci

Jedna událost se z centrálního topicu šíří paralelně do více návazných služeb

Nasazování aplikací na AWS

Výběr správné služby pro zasílání zpráv

Mřížka 2×2 se službami AWS pro zasílání zpráv: SQS fronta s tokem producent–konzument, SNS pub-sub fanout do více odběratelů, EventBridge event bus se směrováním podle pravidel a Kinesis s uspořádanými shardy a přehráváním

  • SQS: jedna fronta, jedna skupina konzumentů, doručení alespoň jednou
  • SNS: pub/sub, jedna zpráva pro mnoho odběratelů
  • EventBridge: směrování událostí podle obsahu na více cílů
  • Kinesis Data Streams: uspořádaný, přehratelný streaming
Nasazování aplikací na AWS

Vzor fanout

  • Jedna událost musí naráz dorazit k více konzumentům
  • Publikuj do SNS topicu
  • Každá SQS fronta se přihlásí k odběru topicu
  • Každý konzument dostane vlastní kopii, odděleně

Vzor SNS-to-SQS fanout: jeden SNS topic publikuje do více SQS front, každá fronta obsluhuje vlastního konzumenta svým tempem

Nasazování aplikací na AWS

Filtrování: konzument dostane jen to, co potřebuje

  • Bez filtrů každý odběratel dostane každou událost
  • Filtrovací pravidla SNS odběrů: filtrování podle atributů zprávy
  • Filtry obsahu EventBridge: shoda podle polí události
  • Každý konzument přijímá jen relevantní události

Filtrovací pravidlo SNS odběru a filtr obsahu EventBridge: každý konzument přijímá jen události odpovídající jeho pravidlu, což snižuje zbytečné zpracování a náklady

Nasazování aplikací na AWS

Směrování s EventBridge

Diagram směrování EventBridge: event bus přijímá události z více zdrojů, pravidla odpovídají vzorům událostí a shodující se události jsou směrovány do Lambda, SQS a dalších cílových služeb

  • Event bus: přijímá události z mnoha zdrojů
  • Pravidlo: vzor události, který odpovídá určitým událostem
  • Cíl: kam jsou shodující se události odeslány
  • Jedna událost může být směrována na více cílů
Nasazování aplikací na AWS

Streaming s Kinesis Data Streams

  • Průběžný tok záznamů v reálném čase
    • Záznamy v rámci shardu jsou uspořádané
    • Přehratelné: konzumenti čtou od libovolného místa
    • Více konzumentů čte stejný stream nezávisle na sobě
    • Vhodné pro clickstream, telemetrii a data s vysokou propustností

Architektura Kinesis Data Streams: producenti zapisují uspořádané záznamy do číslovaných shardů, tři konzumenti čtou nezávisle na různých pozicích, šipka přetočení znázorňuje přehrávání

Nasazování aplikací na AWS

Lambda jako konzument událostí

  • Lambda může být spuštěna přes SQS, SNS, EventBridge i Kinesis
  • Mapování zdroje událostí za tebe dotazuje SQS a Kinesis
  • SNS a EventBridge posílají události do Lambda aktivně
  • Zpracování téměř v reálném čase bez správy serverů

Lambda spouštěná čtyřmi zdroji událostí: mapování zdroje událostí dotazuje SQS a Kinesis v dávkách, zatímco SNS a EventBridge posílají události do Lambda přímo

Nasazování aplikací na AWS

Pojďme cvičit!

Nasazování aplikací na AWS

Preparing Video For Download...