Välj mellan Azure-meddelandetjänster – Event Grid, Event Hubs och Service Bus

Azure erbjuder tre tjänster som hjälper dig att leverera händelser eller meddelanden i en lösning. Dessa tjänster är: Azure Event Grid, Azure Event Hubs, Azure Service Bus.

Även om de har vissa likheter är varje tjänst utformad för särskilda scenarier. I den här artikeln beskrivs skillnaderna mellan dessa tjänster, vilket hjälper dig förstå vilken som ska väljas för ditt program. I många fall kompletterar meddelandetjänsterna varandra och kan användas tillsammans.

Händelser jämfört med meddelanden

Det finns en viktig skillnad mellan tjänster som levererar en händelse och tjänster som levererar ett meddelande.

Event

En händelse är ett enkelt meddelande om ett villkor eller en statusändring. Utgivaren av händelsen har ingen förväntan om hur händelsen ska hanteras. Händelsekonsumenten avgör vad man gör med meddelandet. Händelser kan vara diskreta enheter eller ingå i en serie.

Diskreta händelser rapporterar ändringar i ett tillstånd och kan användas. För att gå vidare behöver konsumenten endast veta att något hände. Händelsedata innehåller information om vad som har hänt, men har inte de data som utlöste händelsen. Till exempel meddelar en händelse konsumenten att en fil har skapats. Den kan ha allmän information om filen, men den har inte själva filen. Diskreta händelser är idealiska för serverlösa lösningar som behöver vara skalbara.

En serie händelser rapporterar ett villkor och kan analyseras. Händelserna är tidssorterade och överlappande. Konsumenten måste ha den sekventiella händelseserien för att kunna analysera vad hände.

Meddelande

Ett meddelande är rådata som genereras av en tjänst och som ska förbrukas eller lagras någon annanstans. Meddelandet innehåller de data som utlöste meddelandets pipeline. Utgivaren av meddelandet har en förväntan på hur konsumenten ska hantera meddelandet. Det finns ett kontrakt mellan de två sidorna. Utgivaren skickar exempelvis ett meddelande med rådata och förväntar sig att konsumenten skapar en fil från dessa data, samt skickar ett svar när arbetet utförts.

Nu ska vi snabbt gå igenom vad Azure Event Grid, Azure Event Hubs och Azure Service Bus är.

Azure Event Grid

Azure Event Grid är en mycket skalbar, fullständigt hanterad pubundermeddelandedistributionstjänst som erbjuder flexibla mönster för meddelandeförbrukning med hjälp av MQTT-protokollen (Message Queueing Telemetry Transport) och HTTP. Med Azure Event Grid kan du skapa datapipelines med enhetsdata, integrera program och skapa händelsedrivna serverlösa arkitekturer.

Tjänsten tillhandahåller en stam för händelser som möjliggör händelsedriven och reaktiv programmering. Den använder modellen publish-subscribe. Utgivare genererar händelser, men har inga förväntningar på hur händelserna hanteras. Prenumeranter bestämmer vilka händelser de vill hantera.

Event Grid är djupt integrerat med andra Azure-tjänster och kan integreras med tjänster från tredje part. Det förenklar händelsekonsumtionen och sänker kostnaderna genom att eliminera behovet av konstant avsökning. Event Grid dirigerar effektivt och tillförlitligt händelser från resurser, oavsett om de kommer från Azure eller ej. Det distribuerar händelserna till registrerade prenumerantslutpunkter. Händelsemeddelandet innehåller den information du behöver för att kunna reagera på ändringar i tjänster och program. Event Grid är inte en datapipeline och levererar inte själva objektet som uppdaterades.

Det har följande egenskaper:

  • Dynamiskt skalbar
  • Låg kostnad
  • Utan server
  • Minst en gång leverans av en händelse

Event Grid erbjuds i två utgåvor: Azure Event Grid, en fullständigt hanterad PaaS-tjänst i Azure och Event Grid på Kubernetes med Azure Arc, vilket gör att du kan använda Event Grid i ditt Kubernetes-kluster oavsett var det distribueras, lokalt eller i molnet. Mer information finns i Översikt över Azure Event Grid och Event Grid på Kubernetes med Azure Arc- översikt.

Azure Event Hubs

Azure Event Hubs är en stordataströmningsplattform och händelseinmatningstjänst. Den kan ta emot och behandla miljoner händelser per sekund. Det underlättar avbildning, kvarhållning och återuppspelning av telemetri och händelsedataströmmar. Datan kan komma från många samtidiga källor. Med Event Hubs kan telemetri- och händelsedata göras tillgängliga för olika infrastrukturer för dataströmbearbetning och analystjänster. Den är tillgänglig antingen som dataströmmar eller paketerade händelsebatch. Den här tjänsten tillhandahåller en enda lösning som möjliggör snabb datahämtning för realtidsbearbetning och upprepad repris av lagrade rådata. Den kan avbilda strömmande data till en fil för bearbetning och analys.

Det har följande egenskaper:

  • Låg latens
  • Kan ta emot och bearbeta miljontals händelser per sekund
  • Minst en gång leverans av en händelse

Mer information finns i Översikt över Event Hubs.

Azure Service Bus

Service Bus är en fullständigt hanterad meddelandekö för företag med meddelandeköer och publiceringsprenumeranter. Tjänsten är avsedd för företagsprogram som kräver transaktioner, beställning, dubblettidentifiering och omedelbar konsekvens. Med Service Bus kan molnbaserade program tillhandahålla tillförlitlig övergångshantering för tillstånd i affärsprocesser. När du hanterar värdefulla meddelanden som inte kan gå förlorade eller dupliceras använder du Azure Service Bus. Den här tjänsten underlättar även mycket säker kommunikation mellan hybridmolnlösningar och kan ansluta befintliga lokala system till molnlösningar.

Service Bus är en asynkron meddelandetjänst. Den lagrar meddelanden på ett tillförlitligt sätt i en ”asynkron meddelandekö” tills konsumenten är redo att ta emot meddelandena. Det har följande egenskaper:

  • Tillförlitlig asynkron meddelandeleverans (företagsmeddelanden som en tjänst) som kräver avsökning. Om du använder Service Bus och behöver ta emot meddelanden utan att behöva avsöka kön kan du uppnå det genom att använda en lång avsökningsåtgärd med hjälp av TCP-baserade protokoll som Service Bus stöder.
  • Avancerade meddelandefunktioner som först in och först ut (FIFO), batchbearbetning/sessioner, transaktioner, obeställbara meddelanden, temporal kontroll, routning och filtrering samt dubblettidentifiering
  • Minst en gång leverans av ett meddelande
  • Valfri ordnad leverans av meddelanden

Mer information finns i Översikt över Service Bus.

Jämförelse av tjänster

I följande tabell jämförs de tre tjänsterna: Event Grid, Event Hubs och Service Bus.

Tjänst Syfte Typ Användningsområde för
Event Grid Reaktiv programmering Händelsedistribution (diskreta händelser) Reagera på statusändringar
Event Hubs Pipeline för stordata Händelseströmning (serie) Telemetri och distribuerade strömmande data
Service Bus Företagsmeddelanden med högt värde Meddelande Orderbearbetning och finansiella transaktioner

Använda tjänsterna tillsammans

I vissa fall kan du använda tjänsterna sida vid sida för att uppfylla olika roller. En e-handelswebbplats kan till exempel använda Service Bus för att bearbeta ordern, Event Hubs för att samla in platstelemetri och Event Grid för att svara på händelser som om ett objekt levererades.

I andra fall kan du koppla ihop dem för att skapa en händelse och datapipeline. Du använder Event Grid till att svara på händelser i de andra tjänsterna. Ett exempel på hur du använder Event Grid med Event Hubs för att migrera data till Azure Synapse Analytics finns i Strömma stordata till Azure Synapse Analytics. Följande bild visar arbetsflödet för att strömma datan.

Diagram som visar hur Event Hubs, Service Bus och Event Grid kan anslutas tillsammans.

Mer information finns i följande artiklar: