Ereignisgesteuerte Muster mit EventBridge

Bereitstellen von Anwendungen auf AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Eine Bestellung, vier Reaktionen

  • Eine Bestellung muss Abrechnung, Fulfillment, Analytics, E-Mail erreichen
  • Direkte Aufrufe aller vier sind fragil und langsam
  • Ein Ereignis fächert zu allen Konsumenten auf

Ein Ereignis fächert sich von einem zentralen Topic parallel auf mehrere Downstream-Services auf

Bereitstellen von Anwendungen auf AWS

Den passenden Messaging-Service wählen

2x2-Raster von AWS Messaging-Services: SQS-Warteschlange mit Producer-Consumer-Flow, SNS Pub/Sub-Fanout zu mehreren Abonnenten, EventBridge Event Bus mit regelbasierter Weiterleitung und Kinesis mit geordneten Shards und Replay

  • SQS: eine Queue, eine Consumer-Gruppe, mindestens einmal
  • SNS: Pub/Sub, eine Nachricht an viele Abonnenten pushen
  • EventBridge: Events inhaltlich zu vielen Zielen routen
  • Kinesis Data Streams: geordnetes, wiederholbares Streaming
Bereitstellen von Anwendungen auf AWS

Das Fanout-Muster

  • Ein Ereignis muss mehrere Konsumenten gleichzeitig erreichen
  • An ein SNS-Topic veröffentlichen
  • Jede SQS-Queue abonniert das Topic
  • Jeder Konsument bekommt seine eigene, entkoppelte Kopie

SNS-zu-SQS-Fanout: ein SNS-Topic veröffentlicht an mehrere SQS-Queues, jede Queue bedient ihren eigenen Consumer in eigenem Tempo

Bereitstellen von Anwendungen auf AWS

Filtern: Konsumenten bekommen nur, was sie brauchen

  • Ohne Filter erhält jeder Abonnent jedes Ereignis
  • SNS-Filterrichtlinien: nach Nachrichtenattributen filtern
  • EventBridge-Content-Filter: auf Ereignisfelder matchen
  • Jeder Konsument bekommt nur relevante Ereignisse

SNS-Filterrichtlinie und EventBridge-Content-Filter: Jeder Konsument erhält nur Ereignisse, die seiner Filterregel entsprechen – weniger unnötige Verarbeitung und Kosten

Bereitstellen von Anwendungen auf AWS

Routing mit EventBridge

EventBridge-Routingdiagramm: Event Bus empfängt Events aus mehreren Quellen, Regeln matchen Eventmuster, gematchte Events werden an Lambda, SQS und andere Zielservices geroutet

  • Event Bus: empfängt Events aus vielen Quellen
  • Rule: ein Eventmuster, das bestimmte Events matched
  • Target: wohin gematchte Events gesendet werden
  • Ein Event kann zu mehreren Zielen routen
Bereitstellen von Anwendungen auf AWS

Streaming mit Kinesis Data Streams

  • Ein kontinuierlicher, nahezu Echtzeit-Strom von Datensätzen
    • Geordnete Datensätze innerhalb eines Shards
    • Wiederholbar: Konsumenten lesen ab jedem Punkt erneut
    • Mehrere Konsumenten lesen denselben Stream unabhängig
    • Für Clickstream, Telemetrie, hohen Durchsatz nutzen

Kinesis-Data-Streams-Architektur: Producer schreiben geordnete Datensätze in nummerierte Shards, drei Konsumenten lesen unabhängig an unterschiedlichen Positionen; ein Zurückspul-Pfeil zeigt Replay-Fähigkeit

Bereitstellen von Anwendungen auf AWS

Lambda als Event-Konsument

  • Lambda kann durch SQS, SNS, EventBridge, Kinesis ausgelöst werden
  • Event Source Mapping pollt SQS und Kinesis für dich
  • SNS und EventBridge pushen Events zu Lambda
  • Nahezu in Echtzeit verarbeiten, ohne Server zu verwalten

Lambda wird von vier Ereignisquellen ausgelöst: Event Source Mapping pollt SQS und Kinesis in Batches, während SNS und EventBridge Events direkt zu Lambda pushen

Bereitstellen von Anwendungen auf AWS

Lass uns üben!

Bereitstellen von Anwendungen auf AWS

Preparing Video For Download...