Wybieranie usługi Azure Event Hubs
Istnieją pewne aplikacje, które generują ogromną liczbę zdarzeń z niemal tak wielu źródeł. Często słyszymy termin "Big Data" stosowany do tych sytuacji, które wymagają unikatowej infrastruktury do ich obsługi.
Wyobraź sobie, że pracujesz dla firmy Contoso produkującej silniki lotnicze. Silniki produkowane przez pracodawcę mają setki czujników. Zanim samolot może wystartować każdego ranka, jego silniki są podłączane do uprzęży testowej i poddawane testom. Ponadto buforowane dane w locie są przesyłane strumieniowo, gdy samolot jest podłączony do sprzętu naziemnego.
Chcesz użyć historycznych danych czujników, aby znaleźć wzorce w odczytach czujników, które wskazują, że wkrótce nastąpi awaria silnika. Chcesz, aby odczyty czujników w czasie rzeczywistym były porównywane z tymi wzorcami awarii. Następnie można ostrzegać użytkowników niemal w czasie rzeczywistym, jeśli aparat wyświetla niepokojące odczyty.
Co to jest usługa Azure Event Hubs?
usługa Event Hubs jest pośrednikiem dla wzorca komunikacji publikowania-subskrybowania. W przeciwieństwie do usługi Event Grid, jest ona jednak zoptymalizowana pod kątem bardzo wysokiej przepływności, dużej liczby wydawców, zabezpieczeń i odporności.
Usługa Event Grid doskonale pasuje do wzorca publikowania-subskrybowania, ponieważ po prostu zarządza subskrypcjami i kieruje komunikację do tych subskrybentów, usługa Event Hubs wykonuje sporo dodatkowych usług. Te dodatkowe usługi bardziej przypominają magistralę usług lub kolejkę komunikatów niż prostego nadawcę zdarzeń.
Partycje
Gdy usługa Event Hubs odbiera komunikację, dzieli je na partycje. Partycje to bufory, do których zapisywana jest komunikacja. Ze względu na bufory zdarzeń, zdarzenia nie są efemeryczne, a zdarzenie nie zostanie pominięte tylko dlatego, że subskrybent jest zajęty lub nawet offline. Subskrybent zawsze może używać buforu do "nadrobienia zaległości". Domyślnie zdarzenia pozostają w buforze przez 24 godziny przed ich automatycznym wygaśnięciem. Bufory są nazywane partycjami, ponieważ dane są podzielone między nimi. Każda partycja ma oddzielny zestaw subskrybentów.
Złapać
Usługa Event Hubs może natychmiast wysyłać wszystkie zdarzenia do Azure Data Lake lub Azure Blob storage w celu niedrogiego, trwałego przechowywania.
Uwierzytelnianie
Wszyscy wydawcy są uwierzytelniani i otrzymują token. Oznacza to, że usługa Event Hubs może akceptować zdarzenia z urządzeń zewnętrznych i aplikacji mobilnych bez obaw, że fałszywe dane od żartujących mogą zrujnować analizę.
Korzystanie z usługi Event Hubs
Usługa Event Hubs obsługuje przesył strumieniowy zdarzeń do innych usług Azure. Korzystanie z niej z usługą Azure Stream Analytics umożliwia na przykład złożoną analizę danych niemal w czasie rzeczywistym z możliwością korelowania wielu zdarzeń i wyszukiwania wzorców. W takim przypadku usługa Stream Analytics zostanie uznana za subskrybenta.
W przypadku naszych silników samolotów skonfigurujemy naszą architekturę, aby usługa Event Hubs uwierzytelniła komunikację z naszych silników. Następnie użyjemy funkcji przechwytywania, aby zapisać wszystkie dane w usłudze Data Lake. Później możemy użyć wszystkich tych danych do ponownego trenowania i ulepszania modeli uczenia maszynowego. Na koniec abonenci usługi Stream Analytics odbierają strumienie zdarzeń. Usługa Stream Analytics używa naszego modelu uczenia maszynowego do wyszukiwania wzorców w danych czujników, które mogą wskazywać na problemy.
Ponieważ mamy kilka partycji, a każdy silnik wysyła wszystkie dane tylko do jednej partycji, każda instancja subskrybenta usługi Stream Analytics musi obsługiwać tylko podzestaw naszych ogólnych danych. Nie musi filtrować i korelować wszystkich elementów.
Którą usługę należy wybrać?
Podobnie jak w przypadku wyboru kolejki, wybór pomiędzy tymi dwoma usługami dostarczania zdarzeń na początku może wydawać się trudny. Obie obsługują semantykę co najmniej raz.
Wybierz usługę Event Hubs, jeśli:
- Musisz obsługiwać uwierzytelnianie dużej liczby wydawców.
- Musisz zapisać strumień zdarzeń w usłudze Data Lake lub Blob Storage.
- Potrzebujesz agregacji lub analizy zdarzeń
- Potrzebujesz niezawodnej komunikacji lub odporności.
W przeciwnym razie, jeśli potrzebujesz prostej infrastruktury publikowania-subskrybowania zdarzeń z zaufanymi wydawcami (na przykład własnym serwerem internetowym), należy wybrać usługę Event Grid.
Usługa Event Hubs umożliwia tworzenie potoku danych big data, który umożliwia przetwarzanie milionów zdarzeń na sekundę z małym opóźnieniem. Może obsługiwać dane z współbieżnych źródeł i kierować je do różnych infrastruktur przetwarzania strumieniowego i usług analitycznych. Umożliwia przetwarzanie w czasie rzeczywistym i obsługuje powtarzające się powtarzanie przechowywanych danych pierwotnych.