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 meddelandetjänster

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

Händelse

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 statusändringar och har handlingsbarhet. 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. De kan innehålla allmän information om filen, men innehåller inte själva filen. Diskreta händelser är idealiska för serverlösa lösningar som behöver vara skalbara.

Seriehändelser rapporterar ett tillstånd och går att analysera. 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.

Azure Event Grid

Event Grid är en händelsebakplan som möjliggör händelsedriven och reaktiv programmering. Den använder modellen publish-subscribe. Utgivare sändar händelser, men har ingen förväntan på hur händelserna hanteras. Prenumeranter bestämmer vilka händelser de vill hantera.

Event Grid är djupt integrerat med Azures tjänster och kan även 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
  • Leverans av en händelse minst en gång

Mer information finns i Event Grid ö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. Event Hubs tillåter att telemetri- och händelsedata görs tillgängliga för olika infrastrukturer och analystjänster för dataströmbearbetning. Den är tillgänglig som dataströmmar eller paketerade händelsebatchar. Den här tjänsten tillhandahåller en enda lösning som möjliggör snabb datahämtning för realtidsbearbetning och upprepad återuppspelning 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
  • Leverans av en händelse minst en gång

Mer information finns i Event Hubs översikt.

Azure Service Bus

Service Bus är en fullständigt hanterad meddelandekoordinator för företag med meddelandeköer och publicera/prenumerera-ämnen. Tjänsten är avsedd för företagsprogram som kräver transaktioner, ordning, dubblettidentifiering och omedelbar konsekvens. Med Service Bus kan program i molnet tillhandahålla tillförlitlig övergångshantering för tillstånd i affärsprocesser. Om du hanterar viktiga meddelanden som inte får försvinna eller dupliceras, bör du använda Azure Service Bus. Den här tjänsten underlättar också 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
  • Avancerade meddelandefunktioner som FIFO (först in och först ut), batchbearbetning/sessioner, transaktioner, dead-lettering, temporal kontroll, routning och filtrering samt dubblettidentifiering
  • Leverans av ett meddelande minst en gång
  • Valfri sorterad leverans av meddelanden

Mer information finns i Service Bus översikt.

Jämförelse av tjänster

Tjänst Syfte Typ När du ska använda detta
Event Grid Reaktiv programmering Händelsedistribution (diskret) 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 beställningen, Event Hubs för att samla in webbplatstelemetri och Event Grid svara på händelser som när 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 Event Grid används tillsammans med Event Hubs för att migrera data till ett informationslager, finns i Strömma stordata till ett informationslager. Följande bild visar arbetsflödet för att strömma datan.

Bild som visar Event Hubs, Service Bus och Event Grid kan kopplas ihop.

Nästa steg

Se följande artiklar: