Wybór usługi do obsługi wiadomości na platformie Azure — Event Grid, Event Hubs i Service Bus

Platforma Azure oferuje trzy usługi, które ułatwiają dostarczanie zdarzeń lub komunikatów w całym rozwiązaniu. Te usługi to: Azure Event Grid, Azure Event Hubs, Azure Service Bus.

Mimo iż pod niektórymi względami są one do siebie podobne, każdą z tych usług zaprojektowano z myślą o konkretnych scenariuszach. W tym artykule opisano różnice między tymi usługami w celu ułatwienia wyboru odpowiedniej usługi dla aplikacji. W wielu przypadkach usługi obsługi komunikatów uzupełniają się wzajemnie i można ich używać razem.

Zdarzenia a komunikaty

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

Zdarzenie

Zdarzenie to lekkie powiadomienie z informacją o zmianie stanu lub warunku. Wydawca zdarzenia nie ma żadnych oczekiwań dotyczących sposobu obsługi zdarzenia. Odbiorca zdarzenia decyduje o tym, co zrobić z powiadomieniem. Zdarzenia mogą być odrębnymi jednostkami lub częścią serii.

Zdarzenia dyskretne zgłaszają zmianę stanu i są możliwe do działania. Aby wykonać kolejny krok, odbiorca musi tylko wiedzieć, że coś się wydarzyło. Dane zdarzenia zawierają informacje o tym, co się stało, ale nie zawierają danych, które wyzwoliły zdarzenie. Na przykład zdarzenie powiadamia odbiorców, że utworzono plik. Może on zawierać ogólne informacje o pliku, ale nie ma samego pliku. Zdarzenia odrębne doskonale sprawdzają się w rozwiązaniach bez serwera wymagających skalowania.

Seria zdarzeń zgłasza warunek i można je analizować. Zdarzenia są uporządkowane według czasu i powiązane. Odbiorca potrzebuje sekwencyjnej serii zdarzeń, aby móc przeanalizować, co się zdarzyło.

Komunikat

Komunikat to nieprzetworzone dane utworzone przez usługę, które mają zostać użyte lub przechowane w innej lokalizacji. Komunikat zawiera dane, które spowodowały wyzwolenie potoku komunikatów. Wydawca komunikatu ma oczekiwanie dotyczące sposobu obsługi komunikatu przez odbiorcę. Pomiędzy obiema stronami obowiązuje kontrakt. Na przykład wydawca wysyła komunikat z nieprzetworzonymi danymi i oczekuje, że odbiorca utworzy plik na podstawie tych danych i wyśle odpowiedź po zakończeniu pracy.

Teraz szybko sprawdźmy, czym są usługi Azure Event Grid, Azure Event Hubs i Azure Service Bus.

Azure Event Grid

Azure Event Grid to wysoce skalowalna, w pełni zarządzana usługa dystrybucji komunikatów Pub Sub, która oferuje elastyczne wzorce zużycia komunikatów przy użyciu protokołów MQTT (Message Queueing Telemetry Transport) i HTTP. Za pomocą usługi Azure Event Grid można tworzyć potoki danych z danymi urządzenia, integrować aplikacje i tworzyć architektury bezserwerowe oparte na zdarzeniach.

Usługa zapewnia szkielet zdarzeń, który umożliwia programowanie sterowane zdarzeniami i reaktywne. Korzysta z modelu publikowania-subskrybowania. Wydawcy emitują zdarzenia, ale nie mają oczekiwań co do sposobu obsługi zdarzeń. Subskrybenci decydują o tym, które zdarzenia mają obsługiwać.

Usługa Event Grid jest głęboko zintegrowana z innymi usługami platformy Azure i może być zintegrowana z usługami innych firm. Upraszcza ona używanie zdarzeń i obniża koszty przez wyeliminowanie potrzeby ciągłego sondowania. Usługa Event Grid skutecznie i niezawodnie kieruje zdarzenia z platformy Azure i zasobów spoza platformy Azure. Dystrybuuje zdarzenia do punktów końcowych zarejestrowanych subskrybentów. Komunikat zdarzenia zawiera informacje potrzebne do zareagowania na zmiany w usługach i aplikacjach. Usługa Event Grid nie jest potokiem danych i nie dostarcza rzeczywistego obiektu, który został zaktualizowany.

Ma następujące cechy:

  • Dynamicznie skalowalne
  • Niski koszt
  • Praca bezserwerowa
  • Co najmniej jednokrotne dostarczanie zdarzenia

Usługa Event Grid jest oferowana w dwóch wersjach: Azure Event Grid, w pełni zarządzana usługa PaaS na platformie Azure oraz usługa Event Grid na platformie Kubernetes z usługą Azure Arc, która umożliwia korzystanie z usługi Event Grid w klastrze Kubernetes wszędzie tam, gdzie jest wdrażana, lokalna lub w chmurze. Aby uzyskać więcej informacji, zobacz Omówienie usługi Azure Event Grid i Usługa Event Grid na platformie Kubernetes z omówieniem usługi Azure Arc.

Azure Event Hubs

Usługa Azure Event Hubs to platforma przesyłania strumieniowego danych big data i usługa pozyskiwania zdarzeń. Może odbierać i przetwarzać miliony zdarzeń na sekundę. Ułatwia przechwytywanie, przechowywanie i ponowne odtwarzanie danych telemetrycznych i danych strumienia zdarzeń. Dane mogą pochodzić z wielu równoczesnych źródeł. Usługa Event Hubs umożliwia udostępnianie danych telemetrycznych i danych zdarzeń różnym infrastrukturom przetwarzania strumieniowego i usługom analitycznym. Jest ona dostępna jako strumienie danych lub pakiety partii zdarzeń. Ta usługa udostępnia jedno rozwiązanie, które umożliwia szybkie pobieranie danych na potrzeby przetwarzania w czasie rzeczywistym i powtarzanie powtarzania przechowywanych danych pierwotnych. Może przechwycić dane przesyłane strumieniowo do pliku na potrzeby przetwarzania i analizy.

Ma następujące cechy:

  • Małe opóźnienia
  • Może odbierać i przetwarzać miliony zdarzeń na sekundę
  • Co najmniej jednokrotne dostarczanie zdarzenia

Aby uzyskać więcej informacji, zobacz Omówienie usługi Event Hubs.

Azure Service Bus

Usługa Service Bus to w pełni zarządzany broker komunikatów przedsiębiorstwa z kolejkami komunikatów i tematami publikowania-subskrybowania. Usługa jest przeznaczona dla aplikacji dla przedsiębiorstw, które wymagają transakcji, zamawiania, wykrywania duplikatów i natychmiastowej spójności. Usługa Service Bus umożliwia aplikacjom natywnym dla chmury zapewnianie niezawodnego zarządzania zmianami stanu dla procesów biznesowych. W przypadku obsługi komunikatów o wysokiej wartości, których nie można utracić ani duplikować, użyj usługi Azure Service Bus. Ta usługa ułatwia również wysoce bezpieczną komunikację między rozwiązaniami chmury hybrydowej i może łączyć istniejące systemy lokalne z rozwiązaniami w chmurze.

Usługa Service Bus jest systemem komunikatów obsługiwanych przez brokera. W niezawodny sposób przechowuje komunikaty w „brokerze” (np. w kolejce) do momentu, w którym strona odbierająca będzie gotowa do odebrania komunikatów. Ma następujące cechy:

  • Niezawodne asynchroniczne dostarczanie komunikatów (obsługa komunikatów w przedsiębiorstwie jako usługa), które wymaga sondowania. Jeśli używasz usługi Service Bus i musisz odbierać komunikaty bez konieczności sondowania kolejki, możesz to osiągnąć przy użyciu długiej operacji sondowania odbierania przy użyciu protokołów opartych na protokole TCP, które obsługuje usługa Service Bus.
  • Zaawansowane funkcje obsługi komunikatów, takie jak first-in i first-out (FIFO), wsadowe/sesje, transakcje, utracony zapis, kontrola czasowa, routing i filtrowanie oraz wykrywanie duplikatów
  • Co najmniej jednokrotne dostarczanie komunikatu
  • Opcjonalne uporządkowane dostarczanie komunikatów

Aby uzyskać więcej informacji, zobacz Service Bus overview (Omówienie usługi Service Bus).

Porównanie usług

W poniższej tabeli porównaliśmy trzy usługi: Event Grid, Event Hubs i Service Bus.

Usługa Purpose Typ Kiedy używać
Event Grid Programowanie reaktywne Dystrybucja zdarzeń (zdarzenia dyskretne) Reagowanie na zmiany stanu
Event Hubs Potok danych big data Przesyłanie strumieniowe zdarzeń (serie) Przesyłanie strumieniowe rozproszonych danych i telemetrii
Service Bus Obsługa komunikatów o wysokiej wartości w przedsiębiorstwie Komunikat Przetwarzanie zamówień i transakcje finansowe

Jednoczesne używanie usług

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ć usługi Service Bus do przetwarzania zamówienia, usługi Event Hubs do przechwytywania danych telemetrycznych lokacji i usługi Event Grid w celu reagowania na zdarzenia, takie jak element został wysłany.

W innych przypadkach można je połączyć ze sobą w celu utworzenia potoku 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.

Odwiedź następujące artykuły: