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.
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.
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 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 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
- 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 Azure Event Grid översikt och Översikt över Event Grid på Kubernetes med Azure Arc.
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ändelsebatchar. Den här tjänsten tillhandahåller en enda lösning som möjliggör snabb datahämtning för realtidsbearbetning och upprepad upprepning av lagrade rådata. Den kan avbilda strömmande data till en fil för bearbetning och analys.
Det har följande egenskaper:
- Kort svarstid
- 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 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. 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 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 först in och först ut (FIFO), batchbearbetning/sessioner, transaktioner, obeställbara meddelanden, temporal kontroll, routning och filtrering samt dubblettidentifiering
- Leverans av ett meddelande minst en gång
- Valfri ordnad leverans av meddelanden
Mer information finns i Översikt över Service Bus.
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 ordern, Event Hubs för att samla in webbplatstelemetri 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 en Azure Synapse Analytics. Följande bild visar arbetsflödet för att strömma datan.
Nästa steg
Se följande artiklar: