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.

Gebeurtenissen versus berichten

Er is een belangrijk onderscheid tussen services die een gebeurtenis en services leveren 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.

Discrete gebeurtenissen rapporteren een wijziging in een status en 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. Het bestand bevat mogelijk algemene informatie over het bestand, maar het bestand zelf is niet beschikbaar. Afzonderlijke gebeurtenissen zijn ideaal voor serverloze oplossingen die moeten worden geschaald.

Een reeks gebeurtenissen rapporteert een voorwaarde en kan worden geanalyseerd. 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.

Laten we nu snel bekijken wat Azure Event Grid, Azure Event Hubs en Azure Service Bus zijn.

Azure Event Grid

Azure Event Grid is een zeer schaalbare, volledig beheerde Pub Sub-berichtendistributieservice die flexibele berichtverbruikspatronen biedt met behulp van de MQTT- en HTTP-protocollen (Message Queueing Telemetry Transport). Met Azure Event Grid kunt u gegevenspijplijnen bouwen met apparaatgegevens, toepassingen integreren en serverloze architecturen bouwen op basis van gebeurtenissen.

De service biedt een gebeurtenis-backbone die gebeurtenisgestuurde en reactieve programmering mogelijk maakt. Het model publish-subscribe wordt gebruikt. Uitgevers verzenden gebeurtenissen, maar hebben geen verwachting over hoe de gebeurtenissen worden verwerkt. Abonnees bepalen welke gebeurtenissen ze willen verwerken.

Event Grid is diep geïntegreerd met andere 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 eenmaal levering van een gebeurtenis

Event Grid wordt aangeboden in twee edities: Azure Event Grid, een volledig beheerde PaaS-service in Azure en Event Grid in Kubernetes met Azure Arc, waarmee u Event Grid kunt gebruiken in uw Kubernetes-cluster, waar dat ook is geïmplementeerd, on-premises of in de cloud. Zie overzicht van Azure Event Grid en Event Grid in Kubernetes met Azure Arc-overzicht 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. Met Event Hubs kunnen telemetrie- en gebeurtenisgegevens beschikbaar worden gesteld aan verschillende infrastructuren voor stroomverwerking en analyseservices. Deze is beschikbaar als gegevensstromen of gebundelde gebeurtenisbatches. Deze service biedt één oplossing waarmee snelle gegevens 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 eenmaal levering van een gebeurtenis

Zie het overzicht van Event Hubs voor meer informatie.

Azure Service Bus

Service Bus is een volledig beheerde enterprise-berichtenbroker met berichtenwachtrijen en onderwerpen over publiceren/abonneren. De service is bedoeld voor bedrijfstoepassingen waarvoor transacties, volgorde, dubbele detectie en onmiddellijke consistentie zijn vereist. Met Service Bus kunnen cloudsysteemeigen toepassingen betrouwbaar statusovergangsbeheer bieden voor bedrijfsprocessen. Wanneer u berichten met een hoge waarde verwerkt die niet verloren of gedupliceerd kunnen worden, gebruikt u Azure Service Bus. Deze service faciliteert ook zeer 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) waarvoor polling is vereist. Als u Service Bus gebruikt en u berichten wilt ontvangen zonder de wachtrij te hoeven peilen, kunt u dit bereiken met behulp van een lange polling-ontvangstbewerking met behulp van de TCP-protocollen die Door Service Bus worden ondersteund.
  • Geavanceerde berichtenfuncties zoals first-in en first-out (FIFO), batching/sessies, transacties, dead-lettering, tijdelijke controle, routering en filtering en dubbele detectie
  • Ten minste eenmaal bezorging van een bericht
  • Optionele bestelde bezorging van berichten

Zie Service Bus-overzicht voor meer informatie.

Vergelijking van services

In de volgende tabel worden de drie services vergeleken: Event Grid, Event Hubs en Service Bus.

Service Doel Type Wanneer gebruiken
Event Grid Reactieve programmering Gebeurtenisdistributie (discrete gebeurtenissen) 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 Big Data streamen naar Azure Synapse Analytics voor een voorbeeld van het gebruik van Event Grid met Event Hubs om gegevens te migreren naar Azure Synapse Analytics. In de volgende afbeelding ziet u de werkstroom voor het streamen van de gegevens.

Diagram waarin wordt getoond hoe Event Hubs, Service Bus en Event Grid met elkaar kunnen worden verbonden.

Zie de volgende artikelen: