Výběr mezi službami Azure Messaging Services – Event Grid, Event Hubs a Service BusChoose between Azure messaging services - Event Grid, Event Hubs, and Service Bus

Azure nabízí tři služby, které v rámci určitého řešení pomáhají doručovat zprávy o událostech.Azure offers three services that assist with delivering event messages throughout a solution. Jsou to tyto služby:These services are:

I když se tyto služby v mnohém podobají, každá z nich je navržená pro určité situace.Although they have some similarities, each service is designed for particular scenarios. 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.This article describes the differences between these services, and helps you understand which one to choose for your application. V mnoha případech se služby zasílání zpráv vzájemně doplňují a dají se použít společně.In many cases, the messaging services are complementary and can be used together.

Služby událostí a služby zprávEvent vs. message services

Je potřeba rozlišovat mezi službami, které doručují události, a službami, které doručují zprávy.There's an important distinction to note between services that deliver an event and services that deliver a message.

UdálostEvent

Událost je odlehčené oznámení o stavu nebo změně stavu.An event is a lightweight notification of a condition or a state change. Vydavatel události nemá žádné očekávání ohledně toho, jak se má událost zpracovat.The publisher of the event has no expectation about how the event is handled. Příjemce události se rozhodne, jak s oznámením naložit.The consumer of the event decides what to do with the notification. Události můžou být samostatné jednotky nebo můžou být součástí řady.Events can be discrete units or part of a series.

Samostatné události hlásí změny stavu a dá se na ně reagovat.Discrete events report state change and are actionable. Pokud chce příjemce přejít k dalšímu kroku, stačí mu jenom vědět, že se něco stalo.To take the next step, the consumer only needs to know that something happened. Data události obsahují informace o tom, co se stalo, ale neobsahují data, která událost aktivovala.The event data has information about what happened but doesn't have the data that triggered the event. Událost třeba příjemcům oznamuje, že došlo k vytvoření souboru.For example, an event notifies consumers that a file was created. Může obsahovat obecné informace o tomto souboru, ale ne soubor samotný.It may have general information about the file, but it doesn't have the file itself. Diskrétní události jsou ideální pro řešení bez serveru , která se musí škálovat.Discrete events are ideal for serverless solutions that need to scale.

Řady událostí hlásí určitý stav a jsou analyzovatelné.Series events report a condition and are analyzable. Události jsou seřazené podle času a vzájemně provázané.The events are time-ordered and interrelated. Pokud chcete příjemce analyzovat, co se stalo, potřebuje sekvenční řadu událostí.The consumer needs the sequenced series of events to analyze what happened.

ZprávaMessage

Zprávu tvoří nezpracovaná data vytvořená určitou službou, která se mají spotřebovat nebo uložit na jiném místě.A message is raw data produced by a service to be consumed or stored elsewhere. Zpráva obsahuje data, která aktivovala kanál zprávy.The message contains the data that triggered the message pipeline. Vydavatel zprávy má určitá očekávání ohledně toho, jak příjemce zprávu zpracuje.The publisher of the message has an expectation about how the consumer handles the message. Mezi oběma stranami existuje dohoda.A contract exists between the two sides. 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ěď.For example, the publisher sends a message with the raw data, and expects the consumer to create a file from that data and send a response when the work is done.

Porovnání služebComparison of services

SlužbaService ÚčelPurpose TypType Kdy je použítWhen to use
Event GridEvent Grid Reaktivní programováníReactive programming Distribuce události (samostatná)Event distribution (discrete) Reakce na změny stavuReact to status changes
Event HubsEvent Hubs Kanál pro velké objemy datBig data pipeline Streamování událostí (řady)Event streaming (series) Streamování telemetrických a distribuovaných datTelemetry and distributed data streaming
Service BusService Bus Zasílání podnikových zpráv s vysokou hodnotouHigh-value enterprise messaging ZprávaMessage Zpracování objednávek a finanční transakceOrder processing and financial transactions

Event GridEvent Grid

Event Grid je propojovací rovina událostí, která umožňuje reaktivní programování založené na událostech.Event Grid is an eventing backplane that enables event-driven, reactive programming. Používá model publikování-přihlášení k odběru.It uses a publish-subscribe model. Vydavatelé vydávají události, ale nemají žádné očekávání ohledně toho, které události se mají zpracovat.Publishers emit events, but have no expectation about which events are handled. O tom, které události se zpracují, rozhodují odběratelé.Subscribers decide which events they want to handle.

Služba Event Grid je úzce propojená se službami Azure a umožňuje taky integraci se službami třetích stran.Event Grid is deeply integrated with Azure services and can be integrated with third-party services. To zjednodušuje příjem událostí a snižuje náklady, protože není potřeba neustále provádět dotazování.It simplifies event consumption and lowers costs by eliminating the need for constant polling. Event Grid efektivně a spolehlivě směruje události z prostředků Azure i mimo Azure.Event Grid efficiently and reliably routes events from Azure and non-Azure resources. Distribuuje události do registrovaných koncových bodů odběratelů.It distributes the events to registered subscriber endpoints. Zpráva události obsahuje informace, které potřebujete, abyste mohli reagovat na změny ve službách a aplikacích.The event message has the information you need to react to changes in services and applications. Event Grid není datový kanál a nedoručuje samotný objekt, u kterého došlo k aktualizaci.Event Grid isn't a data pipeline, and doesn't deliver the actual object that was updated.

Event Grid podporuje nedoručené zprávy pro události, které nejsou doručeny do koncového bodu.Event Grid supports dead-lettering for events that aren't delivered to an endpoint.

Má následující vlastnosti:It has the following characteristics:

  • Možnost dynamického škálovánídynamically scalable
  • Nízké nákladylow cost
  • Prostředí bez serveruserverless
  • Alespoň jedno doručeníat least once delivery

Event HubsEvent Hubs

Azure Event Hubs je kanál pro velké objemy dat.Azure Event Hubs is a big data pipeline. Usnadňuje zachytávání, uchovávání a přehrávání streamovaných telemetrických dat a dat událostí.It facilitates the capture, retention, and replay of telemetry and event stream data. Data můžou pocházet z mnoha souběžných zdrojů.The data can come from many concurrent sources. Event Hubs umožňuje zpřístupnění telemetrických dat a dat událostí do řady infrastruktur pro zpracování datových streamů a analytických služeb.Event Hubs allows telemetry and event data to be made available to a variety of stream-processing infrastructures and analytics services. Služba je dostupná buď v podobě datových streamů, nebo jako spojené dávky událostí.It is available either as data streams or bundled event batches. Tato služba poskytuje jedno řešení, které umožňuje rychlé načítání dat pro zpracování v reálném čase i opakované přehrávání uložených nezpracovaných dat.This service provides a single solution that enables rapid data retrieval for real-time processing as well as repeated replay of stored raw data. Může zachytávat streamovaná data do souboru, který umožňuje další zpracování a analýzu.It can capture the streaming data into a file for processing and analysis.

Má následující vlastnosti:It has the following characteristics:

  • Nízká latencelow latency
  • Schopnost přijímat a zpracovávat miliony událostí za sekunducapable of receiving and processing millions of events per second
  • Alespoň jedno doručeníat least once delivery

Service BusService Bus

Služba Service Bus je určená pro tradiční podnikové aplikace.Service Bus is intended for traditional enterprise applications. Tyto podnikové aplikace vyžadují transakce, řazení, vyhledávání duplicit a okamžitou konzistenci.These enterprise applications require transactions, ordering, duplicate detection, and instantaneous consistency. Service Bus umožňuje cloudovým nativním aplikacím poskytovat správu přenosů spolehlivého stavu pro obchodní procesy.Service Bus enables cloud-native applications to provide reliable state transition management for business processes. Pokud zpracováváte zprávy s vysokou hodnotou, které se nesmí ztratit ani duplikovat, použijte Azure Service Bus.When handling high-value messages that cannot be lost or duplicated, use Azure Service Bus. Service Bus zároveň usnadňuje vysoce zabezpečenou komunikaci v rámci hybridního cloudového řešení a může propojovat stávající místní systémy s cloudovými řešeními.Service Bus also facilitates highly secure communication across hybrid cloud solutions and can connect existing on-premises systems to cloud solutions.

Service Bus je zprostředkovaný systém zasílání zpráv.Service Bus is a brokered messaging system. Ukládá zprávy do „zprostředkovatele“ (třeba fronty), dokud není přijímající strana připravená zprávy přijmout.It stores messages in a "broker" (for example, a queue) until the consuming party is ready to receive the messages.

Má následující vlastnosti:It has the following characteristics:

  • Spolehlivé asynchronní doručování zpráv, které vyžaduje dotazováníreliable asynchronous message delivery (enterprise messaging as a service) that requires polling
  • Pokročilé funkce zasílání zpráv, jako je FIFO, dávky/relace, transakce, ukládání nedoručených zpráv, časová kontrola, směrování, filtrování a vyhledávání duplicitadvanced messaging features like FIFO, batching/sessions, transactions, dead-lettering, temporal control, routing and filtering, and duplicate detection
  • Alespoň jedno doručeníat least once delivery
  • Volitelné doručení v daném pořadíoptional in-order delivery

Použití služeb v kombinaciUse the services together

V některých případech používáte služby současně k plnění různých úkolů.In some cases, you use the services side by side to fulfill distinct roles. Například web elektronického obchodování může použít Service Bus ke zpracování objednávky, Event Hubs k zachycení telemetrie webu a Event Grid reakci na události, jako byla položka odeslána.For example, an e-commerce site can use Service Bus to process the order, Event Hubs to capture site telemetry, and Event Grid to respond to events like an item was shipped.

V jiných případech služby vzájemně propojíte do kanálu událostí a dat.In other cases, you link them together to form an event and data pipeline. Event Grid slouží k reagování na události v jiných službách.You use Event Grid to respond to events in the other services. 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.For an example of using Event Grid with Event Hubs to migrate data to a data warehouse, see Stream big data into a data warehouse. Následující obrázek ukazuje pracovní postup pro streamování dat.The following image shows the workflow for streaming the data.

Přehled streamování dat

Další krokyNext steps

Viz následující články:See the following articles: