Ideeën voor oplossingen
Dit artikel is een oplossingsidee. Als u wilt dat we de inhoud uitbreiden met meer informatie, zoals mogelijke gebruiksvoorbeelden, alternatieve services, implementatieoverwegingen of prijsrichtlijnen, laat het ons dan weten door gitHub-feedback te geven.
In dit artikel wordt een serverloze, gebeurtenisgestuurde architectuur beschreven die gebruikmaakt van Azure Event Hubs en Azure Functions om een stroom gegevens op te nemen en te filteren voor databaseopslag.
Architectuur
Gegevensstroom
- Gebeurtenissen komen binnen bij de Input Event Hub.
- De Azure-functie Voor het ongedaan maken van batches en filteren wordt geactiveerd om de gebeurtenis af te handelen. Met deze stap worden ongewenste gebeurtenissen gefilterd en worden de ontvangen gebeurtenissen gedebatteerd voordat ze worden verzonden naar de Output Event Hub.
- Als de Azure-functie voor het ongedaan maken van batchverwerking en filteren de gebeurtenis niet kan opslaan, wordt de gebeurtenis verzonden naar de Deadletter Event Hub 1.
- Gebeurtenissen die binnenkomen bij de Output Event Hub activeren de Transformerende Azure-functie. Deze Azure-functie transformeert de gebeurtenis in een bericht voor het Azure Cosmos DB-exemplaar.
- De gebeurtenis wordt opgeslagen in een Azure Cosmos DB-database.
- Als de Transformerende Azure-functie de gebeurtenis niet kan opslaan, wordt de gebeurtenis opgeslagen in de Deadletter Event Hub 2.
Onderdelen
- Event Hubs neemt de gegevensstroom op. Event Hubs is ontworpen voor scenario's met gegevensstreaming met hoge doorvoer.
- Azure Functions is een serverloze rekenoptie. Het maakt gebruik van een gebeurtenisgestuurd model, waarbij een stukje code (een functie) wordt aangeroepen door een trigger.
- Azure Cosmos DB is een databaseservice met meerdere modellen die beschikbaar is in een serverloze modus op basis van verbruik. Voor dit scenario slaat de functie voor gebeurtenisverwerking JSON-records op met behulp van De Azure Cosmos DB for NoSQL.
Scenariodetails
Dit oplossingsidee beschrijft een variant van een serverloze gebeurtenisgestuurde architectuur die gebruikmaakt van Event Hubs en Azure Functions om een gegevensstroom op te nemen en te verwerken. De resultaten worden naar een database geschreven voor opslag en toekomstige controle nadat ze zijn gedebatcheerd en gefilterd.
Raadpleeg de referentiearchitectuur serverloze gebeurtenisverwerking voor meer informatie over de basisconcepten, overwegingen en benaderingen voor serverloze gebeurtenisverwerking .
Potentiële gebruikscases
Een populair gebruiksvoorbeeld voor het implementeren van een end-to-end gebeurtenisstroomverwerkingspatroon is de Event Hubs-streamingopnameservice voor het ontvangen en verwerken van gebeurtenissen per seconde met behulp van een debatch- en transformatielogica die is geïmplementeerd met zeer schaalbare, door Event Hub geactiveerde functies.
Medewerkers
Dit artikel wordt onderhouden door Microsoft. Het is oorspronkelijk geschreven door de volgende inzenders.
Hoofdauteur:
- Rajasa Savant | Senior Software Development Engineer
Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.
Volgende stappen
- Documentatie over Azure Event Hubs
- Inleiding tot Azure Functions
- Documentatie van Azure Functions
- Overzicht van Azure Cosmos DB
- Een API kiezen in Azure Cosmos DB
Gerelateerde resources
- Serverloze gebeurtenisverwerking is een referentiearchitectuur waarin een typische architectuur van dit type wordt beschreven, met codevoorbeelden en discussie over belangrijke overwegingen.
- Het bewaken van serverloze gebeurtenisverwerking biedt een overzicht en richtlijnen voor het bewaken van serverloze gebeurtenisgestuurde architecturen zoals deze.
- Azure Kubernetes in gebeurtenisstroomverwerking beschrijft een variatie van een serverloze gebeurtenisgestuurde architectuur die wordt uitgevoerd op Azure Kubernetes met KEDA-scaler.
- Een private link-scenario in gebeurtenisstroomverwerking is een oplossingsidee voor het implementeren van een vergelijkbare architectuur in een virtueel netwerk met privé-eindpunten om de beveiliging te verbeteren.