Avbatcha och filtrera serverlös händelsebearbetning med Event Hubs

Event Hubs
Functions
Cosmos DB

Lösningsidé

Om du vill att vi utökar den här artikeln med mer information, till exempel potentiella användningsfall, alternativa tjänster, implementeringsöverväganden eller prisvägledning, kan du berätta för GitHub Feedback!

Den här lösningsidéen visar en variant av en serverlös händelsedriven arkitektur som använder Azure Event Hubs och Azure Functions för att mata in och bearbeta en dataström. När debatcharna har debaterats och filtrerats skrivs resultaten till en databas för lagring och framtida granskning.

Mer information om grundläggande begrepp, överväganden och metoder för serverlös händelsebearbetning finns i referensarkitekturen för serverlös händelsebearbetning.

Potentiella användningsfall

Ett populärt användningsfall för att implementera ett mönster för bearbetning av händelseströmmar från slutet till slut är tjänsten Event Hubs streaming ingestion för att ta emot och bearbeta händelser per sekund med hjälp av en avbatchnings- och transformeringslogik som implementeras med mycket skalbara händelsehubbutlösta funktioner.

Arkitektur

Diagram som visar dataflödet och viktiga bearbetningspunkter i arkitekturen som beskrivs i den här artikeln

  1. Händelser tas emot i händelsehubben för indata.
  2. Azure-funktionen debatchning och filtrering utlöses för att hantera händelsen. Det här steget filtrerar bort oönskade händelser och avbatchar mottagna händelser innan de skickas till utdatahändelsehubben.
  3. Om Azure-funktionen Förbatchning och filtrering inte kan lagra händelsen skickas den till Deadletter Event Hub 1.
  4. Händelser som kommer till händelsehubben för utdata utlöser transformering av Azure-funktionen. Den här Azure-funktionen omvandlar händelsen till ett meddelande för Cosmos DB.
  5. Händelsen lagras i en Cosmos DB databas.
  6. Om transformering av Azure-funktionen misslyckas med att lagra händelsen sparas händelsen i Deadletter Event Hub 2.

Komponenter

  • Event Hubs matar in dataströmmen. Event Hubs är utformat för dataströmningsscenarier med högt dataflöde.
  • Azure Functions är ett serverlöst beräkningsalternativ. Den använder en händelsedriven modell, där ett kodstycke (en funktion) anropas av en utlösare.
  • Azure Cosmos DB är en databastjänst med flera modeller som är tillgänglig i ett serverlöst, förbrukningsbaserat läge. I det här scenariot lagrar händelsebearbetningsfunktionen JSON-poster med hjälp av Cosmos DB SQL API.

Nästa steg