Pomysły dotyczące rozwiązań
Ten artykuł jest pomysłem na rozwiązanie. Jeśli chcesz, abyśmy rozszerzyli zawartość o więcej informacji, takich jak potencjalne przypadki użycia, alternatywne usługi, zagadnienia dotyczące implementacji lub wskazówki dotyczące cen, daj nam znać, przekazując opinię w usłudze GitHub.
W tym artykule opisano architekturę opartą na zdarzeniach bezserwerową, która używa Azure Event Hubs i Azure Functions do pozyskiwania i filtrowania strumienia danych na potrzeby magazynu bazy danych.
Architektura
Przepływ danych
- Zdarzenia docierają do wejściowego centrum zdarzeń.
- W celu obsługi zdarzenia wyzwalana jest funkcja platformy Azure co do usuwania partii i filtrowania. Ten krok filtruje niepożądane zdarzenia i usuwa partie odebranych zdarzeń przed przesłaniem ich do wyjściowego centrum zdarzeń.
- Jeśli de-batching i filtrowanie funkcji platformy Azure nie będzie pomyślnie przechowywać zdarzenia, zdarzenie zostanie przesłane do centrum zdarzeń Deadletter 1.
- Zdarzenia przychodzące do wyjściowego centrum zdarzeń wyzwalają przekształcenie funkcji platformy Azure. Ta funkcja platformy Azure przekształca zdarzenie w komunikat dla wystąpienia usługi Azure Cosmos DB.
- Zdarzenie jest przechowywane w bazie danych usługi Azure Cosmos DB.
- Jeśli przekształcanie funkcji platformy Azure nie zapisze zdarzenia pomyślnie, zdarzenie zostanie zapisane w centrum zdarzeń deadletter 2.
Składniki
- Usługa Event Hubs pozysuje strumień danych. Usługa Event Hubs jest przeznaczona dla scenariuszy przesyłania strumieniowego danych o wysokiej przepływności.
- Azure Functions jest opcją obliczeń bezserwerowych. Używa ona modelu sterowanego zdarzeniami, w którym element kodu ( funkcja) jest wywoływany przez wyzwalacz.
- Azure Cosmos DB to wielomodelowa usługa bazy danych dostępna w trybie bezserwerowym, opartym na użyciu. W tym scenariuszu funkcja przetwarzania zdarzeń przechowuje rekordy JSON przy użyciu usługi Azure Cosmos DB for NoSQL.
Szczegóły scenariusza
W tym rozwiązaniu opisano odmianę architektury bezserwerowej opartej na zdarzeniach, która używa usługi Event Hubs i Azure Functions do pozyskiwania i przetwarzania strumienia danych. Wyniki są zapisywane w bazie danych na potrzeby magazynu i przyszłego przeglądu po ich odsadzonej i odfiltrowanej.
Aby dowiedzieć się więcej o podstawowych pojęciach, zagadnieniach i podejściach do przetwarzania zdarzeń bezserwerowych, zapoznaj się z architekturą referencyjną przetwarzania zdarzeń bezserwerowego .
Potencjalne przypadki użycia
Popularny przypadek użycia implementacji kompleksowego wzorca przetwarzania strumienia zdarzeń obejmuje usługę pozyskiwania przesyłania strumieniowego usługi Event Hubs w celu odbierania i przetwarzania zdarzeń na sekundę przy użyciu logiki desadowania i przekształcania zaimplementowanej z wysoce skalowalnymi funkcjami wyzwalanymi przez centrum zdarzeń.
Współautorzy
Ten artykuł jest obsługiwany przez firmę Microsoft. Został pierwotnie napisany przez następujących współautorów.
Główny autor:
- Rajasa Savant | Starszy inżynier ds. tworzenia oprogramowania
Aby wyświetlić niepublice profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.
Następne kroki
- Dokumentacja usługi Azure Event Hubs
- Wprowadzenie do usługi Azure Functions
- Dokumentacja usługi Azure Functions
- Omówienie usługi Azure Cosmos DB
- Wybieranie interfejsu API w usłudze Azure Cosmos DB
Powiązane zasoby
- Przetwarzanie zdarzeń bezserwerowych to architektura referencyjna szczegółowo typową architekturę tego typu, z przykładami kodu i omówieniem ważnych zagadnień.
- Monitorowanie bezserwerowego przetwarzania zdarzeń zawiera omówienie i wskazówki dotyczące monitorowania architektur opartych na zdarzeniach bezserwerowych, takich jak ten.
- Usługa Azure Kubernetes w przetwarzaniu strumienia zdarzeń opisuje odmianę architektury opartej na zdarzeniach bezserwerowej działającej na platformie Azure Kubernetes z narzędziem KEDA Scaler.
- Scenariusz łącza prywatnego w przetwarzaniu strumienia zdarzeń to rozwiązanie do implementowania podobnej architektury w sieci wirtualnej z prywatnymi punktami końcowymi w celu zwiększenia bezpieczeństwa.