Wybór między Azure Event Grid, usługą Event Hubs i Service Bus

Azure oferuje kilka usług do dostarczania zdarzeń i komunikatów w całym rozwiązaniu. Każda usługa jest przeznaczona dla różnych scenariuszy, od reaktywnego routingu zdarzeń do przesyłania strumieniowego o wysokiej przepływności do komunikatów transakcyjnych klasy korporacyjnej.

W tym artykule porównaliśmy następujące usługi:

Wybierz usługę kandydata

Ta sekcja ułatwia wybranie najbardziej prawdopodobnych usług dla Twoich potrzeb.

Skorzystaj z poniższej tabeli, aby szybko zawęzić usługę pasującą do danego scenariusza:

Criterion Event Grid Centra zdarzeń Magistrala usług
Cel podstawowy Reaktywne trasowanie zdarzeń Big data — przetwarzanie strumieniowe i przyjmowanie danych Komunikacja transakcyjna dla przedsiębiorstw
Model danych Zdarzenia (dyskretne powiadomienia) Strumienie zdarzeń (szeregi uporządkowane czasowo) Komunikaty (ładunki o wysokiej wartości)
Gwarancja dostarczania Co najmniej raz Co najmniej raz Co najmniej raz (opcjonalnie uporządkowane, dokładnie raz w przypadku sesji)
Kiedy stosować Reagowanie na zmiany stanu, architektury bezserwerowe Telemetria, rozproszone przesyłanie strumieniowe danych, analiza w czasie rzeczywistym Przetwarzanie zamówień, transakcje finansowe, przepływy pracy

Wynikiem tej sekcji jest punkt wyjścia do rozważenia. Skorzystaj z poniższych sekcji, aby przeprowadzić szczegółową ocenę usług.

Zdarzenia a komunikaty w usługach obsługi komunikatów Azure

Istnieje ważne rozróżnienie między usługami Azure, które dostarczają zdarzenie i usługi dostarczające komunikat.

Zdarzenie: uproszczone powiadomienie o zmianie warunku lub stanu. Wydawca nie ma oczekiwań co do sposobu obsługi zdarzenia. Zdarzenia mogą być dyskretne (raportowanie zmian stanu, które można wykonać) lub część szeregów uporządkowanych czasowo (raportowanie warunku, który można analizować). Zdarzenia odrębne doskonale sprawdzają się w rozwiązaniach bez serwera wymagających skalowania.

Komunikat: Nieprzetworzone dane generowane przez usługę, które mają być używane lub przechowywane w innym miejscu. Wiadomość zawiera dane, które spowodowały uruchomienie kanału komunikacyjnego. Istnieje umowa między wydawcą a użytkownikiem. Na przykład wydawca wysyła komunikat z nieprzetworzonymi danymi i oczekuje, że odbiorca utworzy plik z tych danych i wyśle odpowiedź po zakończeniu pracy.

Skalowalność i przepływność

W poniższej tabeli porównano, jak usługi Azure Event Grid, Azure Event Hubs i Azure Service Bus radzą sobie ze skalowalnością i przepustowością.

Criterion Event Grid Centra zdarzeń Magistrala usług
Throughput Dynamicznie skalowalne, bezserwerowe Miliony zdarzeń na sekundę Niezawodne dostarczanie asynchroniczne
Model opóźnienia Dostarczanie zdarzeń niemal w czasie rzeczywistym Przesyłanie strumieniowe o małych opóźnieniach Obsługiwane przez brokera z opcjonalnym długim sondowaniem
Model skalowania Automatyczne (bezserwerowe) Jednostki przepływności/jednostki przetwarzania Jednostki obsługi komunikatów (Premium)

Funkcje obsługi komunikatów

W poniższej tabeli porównaliśmy funkcje obsługi komunikatów Azure Event Grid, Azure Event Hubs i Azure Service Bus.

Criterion Event Grid Centra zdarzeń Magistrala usług
Protocol MQTT, HTTP AMQP, Kafka, HTTP AMQP, HTTP
Pub/Sub Tak (publikuj-subskrybuj) Tak (grupy odbiorców) Tak (tematy i subskrypcje)
Szeregowanie Brak gwarancji Na każdą partycję FIFO (sesje)
Transakcje Nie. Nie. Yes
Wykrywanie duplikatów Nie. Nie. Yes
Nieaktywne pismo Yes Nie. Yes
Grupowanie Yes Tak (grupy zdarzeń) Tak (w ramach sesji)
Przechwytywanie/odtwarzanie Nie. Tak (przechwytywanie usługi Event Hubs) Nie.

Integracja i wdrażanie

W poniższej tabeli porównaliśmy opcje integracji i wdrażania dla Azure Event Grid, Azure Event Hubs i Azure Service Bus.

Criterion Event Grid Centra zdarzeń Magistrala usług
integracja usługi Azure Głęboka integracja z usługami Azure i usługami innych firm Infrastruktura przetwarzania strumieniowego i usługi analityczne Aplikacje dla przedsiębiorstw, chmura hybrydowa, łączność lokalna
Edycje Azure Event Grid (PaaS), event grid na platformie Kubernetes z Azure Arc Standardowa, Premium, Dedykowana Podstawowa, Standardowa i Premium

Używanie usługi Event Grid, usługi Event Hubs i Service Bus razem

W niektórych przypadkach usług można używać obok siebie w celu spełniania unikatowych ról. Na przykład witryna handlu elektronicznego może używać Service Bus do przetwarzania zamówień, usługi Event Hubs do przechwytywania danych telemetrycznych lokacji i usługi Event Grid w celu reagowania na zdarzenia, takie jak wysyłany element.

W innych przypadkach można je połączyć, tworząc rurociąg zdarzeń i danych. Usługa Event Grid służy wtedy do reagowania na zdarzenia w innych usługach. Przykład użycia usługi Event Grid z usługą Event Hubs do migrowania danych do usługi Azure Synapse Analytics można znaleźć w temacie Stream big data into Azure Synapse Analytics (Przesyłanie strumieniowe danych big data do usługi Azure Synapse Analytics). Na poniższej ilustracji przedstawiono przepływ pracy przesyłania strumieniowego danych.

Diagram przedstawiający sposób łączenia usług Event Hubs, Service Bus i Event Grid.