Volba mezi službami zasílání zpráv Azure – Event Grid, Event Hubs a Service Bus
Azure nabízí tři služby, které pomáhají s doručováním událostí nebo zpráv v rámci celého řešení. Jsou to tyto služby:
- Azure Event Grid
- Azure Event Hubs
- Azure Service Bus
I když se tyto služby v mnohém podobají, každá z nich je navržená pro určité situace. Tento článek vysvětluje rozdíly mezi nimi a pomůže vám pochopit, kterou službu si máte pro svoji aplikaci vybrat. V mnoha případech se služby zasílání zpráv vzájemně doplňují a dají se použít společně.
Služby událostí a služby zpráv
Mezi službami, které doručují události, a službami, které doručují zprávy, je důležitý rozdíl.
Událost
Událost je odlehčené oznámení o stavu nebo změně stavu. Vydavatel události nemá žádné očekávání ohledně toho, jak se má událost zpracovat. Příjemce události se rozhodne, jak s oznámením naložit. Události můžou být samostatné jednotky nebo můžou být součástí řady.
Samostatné události hlásí změny stavu a dá se na ně reagovat. Pokud chce příjemce přejít k dalšímu kroku, stačí mu jenom vědět, že se něco stalo. Data události obsahují informace o tom, co se stalo, ale neobsahují data, která událost aktivovala. Událost třeba příjemcům oznamuje, že došlo k vytvoření souboru. Může obsahovat obecné informace o tomto souboru, ale ne soubor samotný. Samostatné události jsou ideální pro řešení bez serveru, která vyžadují škálování.
Řady událostí hlásí určitý stav a jsou analyzovatelné. Události jsou seřazené podle času a vzájemně provázané. Pokud chcete příjemce analyzovat, co se stalo, potřebuje sekvenční řadu událostí.
Zpráva
Zprávu tvoří nezpracovaná data vytvořená určitou službou, která se mají spotřebovat nebo uložit na jiném místě. Zpráva obsahuje data, která aktivovala kanál zprávy. Vydavatel zprávy má určitá očekávání ohledně toho, jak příjemce zprávu zpracuje. Mezi oběma stranami existuje dohoda. Vydavatel třeba odešle zprávu s nezpracovanými daty a očekává, že příjemce vytvoří z těchto dat soubor a po dokončení práce odešle odpověď.
Azure Event Grid
Event Grid je propojovací rovina událostí, která umožňuje reaktivní programování založené na událostech. Používá model publikování a odběru. Vydavatelé vysílá události, ale neočekává, jak se události zpracovávají. Odběratelé rozhodují o tom, které události chtějí zpracovat.
Služba Event Grid je úzce propojená se službami Azure a umožňuje taky integraci se službami třetích stran. To zjednodušuje příjem událostí a snižuje náklady, protože není potřeba neustále provádět dotazování. Event Grid efektivně a spolehlivě směruje události z prostředků Azure i mimo Azure. Distribuuje události do registrovaných koncových bodů odběratelů. Zpráva události obsahuje informace, které potřebujete, abyste mohli reagovat na změny ve službách a aplikacích. Event Grid není datový kanál a nedoručuje samotný objekt, u kterého došlo k aktualizaci.
Má následující vlastnosti:
- Dynamicky škálovatelná
- Nízké náklady
- Bez serveru
- Alespoň jedno doručení události
Další informace najdete v Event Grid .
Azure Event Hubs
Azure Event Hubs je platforma pro streamování velkých dat a služba pro ingestování událostí. Dokáže přijímat a zpracovávat miliony událostí za sekundu. Usnadňuje zachytávání, uchovávání a přehrávání streamovaných telemetrických dat a dat událostí. Data můžou pocházet z mnoha souběžných zdrojů. Event Hubs umožňuje, aby telemetrická data a data událostí byly dostupné různým infrastrukturám zpracování datových proudů a analytickým službám. Je k dispozici buď jako datové proudy, nebo jako balíčky dávek událostí. Tato služba poskytuje jedno řešení, které umožňuje rychlé načítání dat pro zpracování v reálném čase a opakované přehrání uložených nezpracovaných dat. Může zachytávat streamovaná data do souboru, který umožňuje další zpracování a analýzu.
Má následující vlastnosti:
- Nízká latence
- Může přijímat a zpracovávat miliony událostí za sekundu.
- Alespoň jedno doručení události
Další informace najdete v tématu Event Hubs přehled.
Azure Service Bus
Service Bus je plně spravovaný podnikový zprostředkovatel zpráv s frontami zpráv a tématy publikování a odběru. Služba je určená pro podnikové aplikace, které vyžadují transakce, řazení, vyhledávání duplicit a okamžitou konzistenci. Service Bus umožňuje nativním cloudovým aplikacím poskytovat spolehlivou správu přechodů mezi stavy pro obchodní procesy. Pokud zpracováváte zprávy s vysokou hodnotou, které se nesmí ztratit ani duplikovat, použijte Azure Service Bus. Tato služba také usnadňuje vysoce zabezpečenou komunikaci mezi hybridními cloudovými řešeními a může propojit stávající místní systémy s cloudovými řešeními.
Service Bus je zprostředkovaný systém zasílání zpráv. Ukládá zprávy do „zprostředkovatele“ (třeba fronty), dokud není přijímající strana připravená zprávy přijmout. Má následující vlastnosti:
- Spolehlivé asynchronní doručování zpráv (zasílání podnikových zpráv jako služba), které vyžaduje cyklické dotazování
- Pokročilé funkce zasílání zpráv, jako je FIFO (first-in-and first-out), dávkování/relace, transakce, zasílání zpráv, dočasné řízení, směrování a filtrování a detekce duplicit
- Alespoň jedno doručení zprávy
- Volitelné seřazené doručování zpráv
Další informace najdete v Service Bus .
Porovnání služeb
| Služba | Účel | Typ | Kdy je použít |
|---|---|---|---|
| Event Grid | Reaktivní programování | Distribuce události (samostatná) | Reakce na změny stavu |
| Event Hubs | Kanál pro velké objemy dat | Streamování událostí (řady) | Streamování telemetrických a distribuovaných dat |
| Service Bus | Zasílání podnikových zpráv s vysokou hodnotou | Zpráva | Zpracování objednávek a finanční transakce |
Použití služeb v kombinaci
V některých případech používáte služby současně k plnění různých úkolů. Web elektronického obchodu může například pomocí služby Service Bus zpracovat objednávku, Event Hubs k zachycení telemetrie webu a Event Grid reagovat na události, jako je odeslání položky.
V jiných případech služby vzájemně propojíte do kanálu událostí a dat. Event Grid slouží k reagování na události v jiných službách. V článku Streamování velkých objemů dat do datového skladu najdete příklad použití Event Gridu v kombinaci se službou Event Hubs. Následující obrázek ukazuje pracovní postup pro streamování dat.
Další kroky
Viz následující články:
- Možnosti asynchronního zasílání zpráv v Azure
- Události, datové bodya zprávy – Volba správné služby zasílání zpráv Azure pro vaše data .