Kiezen tussen berichtenservices van Azure - Event Grid, Event Hubs en Service Bus
Azure biedt drie services die u helpen bij het leveren van gebeurtenissen of berichten in een oplossing. Deze services zijn:
- Azure Event Grid
- Azure Event Hubs
- Azure Service Bus
Hoewel ze een aantal overeenkomsten hebben, is elke service ontworpen voor specifieke scenario's. In dit artikel worden de verschillen tussen deze services beschreven en wordt uitgelegd welke voor uw toepassing het meest geschikt is. In veel gevallen zijn de berichtenservices aanvullend en kunnen ze samen worden gebruikt.
Gebeurtenis- versus berichtenservices
Er is een belangrijk verschil tussen services die een gebeurtenis leveren en services die een bericht bezorgen.
Gebeurtenis
Een gebeurtenis is een lichtgewicht melding van een voorwaarde of een statuswijziging. De uitgever van de gebeurtenis heeft geen verwachting over hoe de gebeurtenis wordt afgehandeld. De consument van de gebeurtenis bepaalt wat er met de melding gebeurt. Gebeurtenissen kunnen afzonderlijke eenheden zijn of deel uitmaken van een reeks.
Afzonderlijke gebeurtenissen melden statuswijzigingen naar aanleiding waarvan acties kunnen worden uitgevoerd. Om de volgende stap te zetten, hoeft de consument alleen te weten dat er iets is gebeurd. De gebeurtenisgegevens bevatten informatie over wat er is gebeurd, maar bevatten niet de gegevens die de gebeurtenis hebben geactiveerd. Zo kan een gebeurtenis consumenten ervan op de hoogte stellen dat er een bestand is gemaakt. De gebeurtenis kan algemene informatie over het bestand bevatten, maar niet het bestand zelf. Afzonderlijke gebeurtenissen zijn ideaal voor serverloze oplossingen die moeten worden geschaald.
Reeksgebeurtenissen rapporteren een voorwaarde en zijn analyseerbaar. De gebeurtenissen zijn chronologisch geordend en zijn met elkaar verbonden. De consument heeft de geordende reeks gebeurtenissen nodig om te kunnen analyseren wat is er gebeurd.
Bericht
Een bericht bestaat uit onbewerkte gegevens die zijn geproduceerd door een service en die moeten worden gebruikt of elders worden opgeslagen. Het bericht bevat de gegevens die de berichtenpijplijn hebben geactiveerd. De uitgever van het bericht heeft een verwachting over hoe de consument omgaat met het bericht. Er bestaat een overeenkomst tussen de twee zijden. Bijvoorbeeld, de uitgever verzendt een bericht met de onbewerkte gegevens en verwacht van de consument dat deze een bestand van die gegevens maakt en een antwoord terugstuurt wanneer dit is gebeurd.
Azure Event Grid
Event Grid is een gebeurtenisbackplane die gebeurtenisafhankelijke en reactieve programmering mogelijk maakt. Er wordt gebruikgemaakt van het model publiceren/abonneren. Uitgevers zenden gebeurtenissen uit, maar hebben geen verwachting over hoe de gebeurtenissen worden verwerkt. Abonnees bepalen welke gebeurtenissen ze willen verwerken.
Event Grid is in grote mate geïntegreerd met Azure-services en kan worden geïntegreerd met services van derden. Het vereenvoudigt het verbruik van gebeurtenissen en verlaagt de kosten omdat constante polling niet nodig is. Event Grid routeert op efficiënte en betrouwbare wijze gebeurtenissen van Azure- en niet-Azure-resources. Het distribueert gebeurtenissen aan eindpunten van geregistreerde abonnees. Het gebeurtenisbericht bevat de informatie die u nodig hebt om te reageren op wijzigingen in services en toepassingen. Event Grid is geen gegevenspijplijn en levert niet het werkelijke object dat is bijgewerkt.
Het heeft de volgende kenmerken:
- Dynamisch schaalbaar
- Lage kosten
- Serverloos
- Ten minste één levering van een gebeurtenis
Zie overzicht van Event Grid voor meer informatie.
Azure Event Hubs
Azure Event Hubs is een streamingplatform en service voor het opnemen van big data. Het kan miljoenen gebeurtenissen per seconde ontvangen en verwerken. Het vereenvoudigt het vastleggen, bewaren en opnieuw afspelen van telemetrie- en gebeurtenisstroomgegevens. De gegevens kunnen afkomstig zijn van veel gelijktijdige bronnen. Event Hubs kunnen telemetrie- en gebeurtenisgegevens beschikbaar worden gesteld aan verschillende stroomverwerkingsinfrastructuren en analyseservices. Het is beschikbaar als gegevensstromen of gebundelde gebeurtenisbatchs. Deze service biedt één oplossing waarmee gegevens snel kunnen worden opgehaald voor realtime verwerking en herhaalde herhaling van opgeslagen onbewerkte gegevens. Hiermee kunnen de streaminggegevens voor verwerking en analyse worden vastgelegd in een bestand.
Het heeft de volgende kenmerken:
- Lage latentie
- Kan miljoenen gebeurtenissen per seconde ontvangen en verwerken
- Ten minste één levering van een gebeurtenis
Zie overzicht van Event Hubs voor meer informatie.
Azure Service Bus
Service Bus is een volledig beheerde berichtenbroker voor ondernemingen met berichtenwachtrijen en onderwerpen over publiceren/abonneren. De service is bedoeld voor bedrijfstoepassingen waarvoor transacties, volgorde, duplicaatdetectie en onmiddellijke consistentie zijn vereist. Met Service Bus kunnen cloudsysteemeigen toepassingen betrouwbaar statusovergangsbeheer bieden voor bedrijfsprocessen. Gebruik Azure Service Bus bij de afhandeling van hoogwaardige berichten die niet verloren mogen gaan of gedupliceerd mogen worden. Deze service faciliteert ook uiterst veilige communicatie tussen hybride cloudoplossingen en kan bestaande on-premises systemen verbinden met cloudoplossingen.
Service Bus is een Brokered Messaging-systeem. Het slaat berichten op in een 'broker' (bijvoorbeeld een wachtrij) tot de ontvangende partij gereed is om ze te ontvangen. Het heeft de volgende kenmerken:
- Betrouwbare asynchrone berichtbezorging (Enterprise Messaging as a Service) die polling vereist
- Geavanceerde berichtenfuncties, zoals FIFO (first-in en first-out), batching/sessies, transacties, dead-lettering, tijdelijke controle, routering en filtering en duplicaatdetectie
- Ten minste één levering van een bericht
- Optionele geordende levering van berichten
Zie overzicht van Service Bus voor meer informatie.
Vergelijking van services
| Service | Doel | Type | Wanneer gebruikt u dit? |
|---|---|---|---|
| Event Grid | Reactieve programmering | Gebeurtenisdistributie (discreet) | Reageren op statuswijzigingen |
| Event Hubs | Big Data-pijplijn | Gebeurtenisstromen (reeks) | Telemetrie- en gedistribueerde gegevensstromen |
| Service Bus | Hoogwaardige bedrijfsberichten | Bericht | Orderverwerking en financiële transacties |
De services samen gebruiken
In sommige gevallen kunt u de services naast elkaar gebruiken om verschillende rollen te kunnen vervullen. Zo kan een e-commerce-site Service Bus gebruiken om orders te verwerken, Event Hubs om telemetrie van de site vast te leggen en Event Grid om te reageren op gebeurtenissen, bijvoorbeeld een artikel dat is verzonden.
In andere gevallen kunt u ze koppelen om een gebeurtenis- en gegevenspijplijn te vormen. U gebruikt Event Grid om te reageren op gebeurtenissen in de andere services. Zie Stream big data into a data warehouse (Big Data streamen naar een data warehouse) voor een voorbeeld van het gebruik van Event Grid met Event Hubs om gegevens te migreren naar een datawarehouse. In de volgende afbeelding ziet u de werkstroom voor het streamen van de gegevens.
Volgende stappen
Zie de volgende artikelen: