Udostępnij za pośrednictwem


Perspektywa platformy Azure Well-Architected Framework w usłudze Azure Event Hubs

Azure Event Hubs to skalowalna usługa przetwarzania zdarzeń, która pozyskiwa i przetwarza duże ilości zdarzeń i danych z małym opóźnieniem i wysoką niezawodnością. Może odbierać i przetwarzać miliony zdarzeń na sekundę. Dane wysyłane do centrum zdarzeń można przekształcać i przechowywać przy użyciu dowolnego dostawcy analizy w czasie rzeczywistym lub kart wsadowych i magazynowych.

Aby uzyskać więcej informacji na temat korzystania z usługi Event Hubs, zapoznaj się z dokumentacją usługi Azure Event Hubs, aby dowiedzieć się, jak używać usługi Event Hubs do pozyskiwania milionów zdarzeń na sekundę z połączonych urządzeń i aplikacji.

Aby zrozumieć sposoby korzystania z usługi Event Hubs, ułatwiają osiągnięcie doskonałości operacyjnej i niezawodności obciążenia, zapoznaj się z następującymi artykułami:

Poniższe sekcje dotyczą usługi Azure Event Hubs z perspektywy dobrze zaprojektowanej struktury:

  • Uwagi dotyczące projektowania
  • Lista kontrolna konfiguracji
  • Zalecane opcje konfiguracji
  • Artefakty źródłowe

Uwagi dotyczące projektowania

Usługa Azure Event Hubs zapewnia umowę SLA czasu pracy. Aby uzyskać więcej informacji, zapoznaj się z umową SLA dotyczącą usługi Event Hubs.

Lista kontrolna

Czy skonfigurowano usługę Azure Event Hubs z myślą o doskonałości operacyjnej?

  • Utwórz odpowiednio zasady SendOnly i ListenOnly dla wydawcy zdarzeń i odbiorcy.
  • Jeśli używasz zestawu SDK do wysyłania zdarzeń do usługi Event Hubs, upewnij się, że wyjątki zgłaszane przez zasadyEventHubsException ponawiania (lub OperationCancelledException) są prawidłowo przechwytywane.
  • W scenariuszach o wysokiej przepływności użyj zdarzeń wsadowych.
  • Każdy użytkownik może odczytywać zdarzenia z jednej do maksymalnej liczby partycji obsługiwanych przez jednostkę SKU usługi Event Hubs
  • Podczas tworzenia nowych aplikacji użyj ( EventProcessorClient .NET i Java) lub EventHubConsumerClient (Python i JavaScript) jako zestawu SDK klienta.
  • W ramach strategii dostępności i odzyskiwania po awarii w całym rozwiązaniu rozważ włączenie opcji odzyskiwania po awarii geograficznej usługi Event Hubs.
  • Jeśli rozwiązanie ma dużą liczbę niezależnych wydawców zdarzeń, rozważ użycie wydawców zdarzeń do szczegółowej kontroli dostępu.
  • Nie publikuj zdarzeń w określonej partycji.
  • W przypadku częstego publikowania zdarzeń należy użyć protokołu AMQP, jeśli jest to możliwe.
  • Liczba partycji odzwierciedla stopień równoległości podrzędnej, którą można osiągnąć.
  • Upewnij się, że każda aplikacja używająca używa oddzielnej grupy odbiorców, a tylko jeden aktywny odbiornik na grupę odbiorców.
  • W przypadku korzystania z funkcji Przechwytywanie należy dokładnie rozważyć konfigurację przedziału czasu i rozmiaru pliku, szczególnie w przypadku woluminów o małych zdarzeniach.

Zalecenia dotyczące konfiguracji

Podczas konfigurowania usługi Azure Event Hubs należy wziąć pod uwagę następujące zalecenia:

Zalecenie opis
Jeśli używasz zestawu SDK do wysyłania zdarzeń do usługi Event Hubs, upewnij się, że wyjątki zgłaszane przez zasadyEventHubsException ponawiania (lub OperationCancelledException) są prawidłowo przechwytywane. W przypadku korzystania z programu HTTPSupewnij się, że zaimplementowano prawidłowy wzorzec ponawiania prób.
W scenariuszach o wysokiej przepływności użyj zdarzeń wsadowych. Usługa dostarczy tablicę json z wieloma zdarzeniami do subskrybentów, zamiast tablicy z jednym zdarzeniem. Aplikacja zużywana musi przetwarzać te tablice.
Każdy użytkownik może odczytywać zdarzenia z jednej do maksymalnej liczby partycji obsługiwanych przez jednostkę SKU usługi Event Hubs. Aby osiągnąć maksymalną skalę po stronie aplikacji zużywanej, każdy odbiorca powinien odczytywać dane z jednej partycji.
Podczas tworzenia nowych aplikacji użyj ( EventProcessorClient .NET i Java) lub EventHubConsumerClient (Python i JavaScript) jako zestawu SDK klienta. EventProcessorHost został przestarzały.
W ramach strategii dostępności i odzyskiwania po awarii w całym rozwiązaniu rozważ włączenie opcji odzyskiwania po awarii geograficznej usługi Event Hubs. Ta opcja umożliwia utworzenie pomocniczej przestrzeni nazw w innym regionie. W dowolnym momencie tylko aktywna przestrzeń nazw odbiera komunikaty. Komunikaty i zdarzenia nie są replikowane do regionu pomocniczego. Cel czasu odzyskiwania dla regionalnego trybu failover wynosi do 30 minut. Upewnij się, że cel czasu odzyskiwania jest zgodny z wymaganiami klienta i pasuje do szerszej strategii dostępności. Jeśli wymagany jest wyższy cel czasu odzyskiwania, rozważ zaimplementowanie wzorca trybu failover po stronie klienta.
Jeśli rozwiązanie ma dużą liczbę niezależnych wydawców zdarzeń, rozważ użycie wydawców zdarzeń do szczegółowej kontroli dostępu. Wydawcy zdarzeń automatycznie ustawiają klucz partycji na nazwę wydawcy, dlatego ta funkcja powinna być używana tylko wtedy, gdy zdarzenia pochodzą z wszystkich wydawców równomiernie.
Nie publikuj zdarzeń w określonej partycji. Jeśli zdarzenia porządkowania są niezbędne, zaimplementuj kolejność podrzędną lub zamiast tego użyj innej usługi obsługi komunikatów.
W przypadku częstego publikowania zdarzeń należy użyć protokołu AMQP, jeśli jest to możliwe. Protokół AMQP ma wyższe koszty sieci podczas inicjowania sesji, ale HTTPS wymaga narzutu protokołu TLS dla każdego żądania. Protokół AMQP charakteryzują się wyższą wydajnością dla częstych wydawców.
Liczba partycji odzwierciedla stopień równoległości podrzędnej, którą można osiągnąć. Aby uzyskać maksymalną przepływność, użyj maksymalnej liczby partycji obsługiwanych przez jednostkę SKU podczas tworzenia centrum zdarzeń. Zwiększenie liczby partycji umożliwia skalowanie współbieżnych jednostek przetwarzania w celu dopasowania ich do partycji, zapewniając optymalną dostępność wysyłania i odbierania.
W przypadku korzystania z funkcji Przechwytywanie należy dokładnie rozważyć konfigurację przedziału czasu i rozmiaru pliku, szczególnie w przypadku woluminów o małych zdarzeniach. Usługa Data Lake Gen2 będzie pobierać opłaty za minimalny rozmiar transakcji. Jeśli ustawisz przedział czasu tak niski, że plik nie osiągnął minimalnego rozmiaru, poniesiesz dodatkowy koszt.

Artefakty źródłowe

Aby znaleźć przestrzenie nazw usługi Event Hubs z podstawową jednostkę SKU, użyj następującego zapytania:

Resources 
| where type == 'microsoft.eventhub/namespaces'
| where sku.name == 'Basic'
| project resourceGroup, name, sku.name

Następny krok