Microsoft AZ-204: Rozwiązania oparte na zdarzeniach i komunikatach w Azure — Przewodnik do nauki

Część Microsoft Azure Developer Associate AZ-204 — Przewodnik do nauki. Ćwicz ze zweryfikowanymi odpowiedziami w centrum egzaminów Microsoft, albo rozwiąż testy na czas na ExamRoll.io.

Przegląd

Portfolio zdarzeń i komunikatów Azure obejmuje cztery uzupełniające się usługi: Event Grid do reaktywnego przetwarzania zdarzeń, Event Hubs do pozyskiwania strumieni o wysokiej przepustowości, Service Bus do obsługi komunikatów korporacyjnych i koordynacji przepływów pracy oraz Notification Hubs do powiadomień mobilnych typu push. Opanowanie ich wymaga znajomości podstawowych abstrakcji każdej usługi, semantyki dostarczania i ponawiania prób, modeli skalowania oraz wiedzy, kiedy preferować jedną usługę nad drugą w typowych wzorcach aplikacji, takich jak pub/sub, przetwarzanie poleceń, pozyskiwanie danych telemetrycznych oraz powiadomienia dla urządzeń lub użytkowników.

Event Grid: Tematy, subskrypcje, schemat, filtrowanie i dead-lettering

Event Grid to w pełni zarządzana, oparta na modelu push struktura pub/sub dla zdarzeń dyskretnych. Wydawcy wysyłają zdarzenia do tematu (topic); subskrybenci rejestrują subskrypcje zdarzeń w temacie i otrzymują pasujące zdarzenia w obsługiwanych punktach końcowych (handlers), takich jak webhooki HTTPS, Azure Functions, Logic Apps, Service Bus, Storage Queues i Event Hubs. Event Grid definiuje dwa modele wydawców. Tematy systemowe (System topics) to zarządzane przez Azure zasoby tematów, które reprezentują usługi Azure (first-party) publikujące zdarzenia w ramach Twojej subskrypcji lub grupy zasobów (na przykład utworzenie obiektu blob w Storage, rotacja sekretu w Key Vault lub zdarzenia Resource Manager). Tematy niestandardowe (Custom topics) to tworzone przez użytkownika punkty końcowe tematów, do których publikują Twoje aplikacje, umożliwiając stosowanie wzorców sterowanych zdarzeniami we własnych usługach i domenach. Tematy systemowe nie wymagają kodu po stronie wydawcy i upraszczają łączenie zasobów Azure z reaktywnymi punktami końcowymi; tematy niestandardowe dają pełną kontrolę nad kontraktami i cyklem życia zdarzeń.

Zdarzenia Event Grid mogą używać natywnego schematu Event Grid lub specyfikacji CloudEvents v1.0. W schemacie Event Grid każde zdarzenie zawiera id (unikalny identyfikator), eventType (akcja), subject (hierarchiczna ścieżka wspierająca filtrowanie), eventTime (UTC), data (ładunek), dataVersion, metadataVersion i topic. CloudEvents dostarcza ustandaryzowany zestaw atrybutów, takich jak id, source, type, time, subject i data. Wybór CloudEvents ułatwia interoperacyjność między platformami; schemat Event Grid zachowuje zgodność ze zdarzeniami pochodzącymi z Azure i umożliwia zaawansowane filtrowanie po polu subject.

Subskrypcje zdarzeń definiują routing, opcje dostarczania i filtry. Podstawowe filtry obejmują filtrowanie po typie zdarzenia oraz prefiksie/sufiksie tematu (subjectBeginsWith, subjectEndsWith), co jest wydajne w przypadku hierarchicznego nazewnictwa zasobów. Filtry zaawansowane dopasowują wartości w polach zdarzenia na najwyższym poziomie lub wewnątrz danych (na przykład porównania zakresów liczbowych, zawieranie ciągu znaków bez uwzględniania wielkości liter, równość logiczna i zawieranie w tablicy). Można łączyć filtry w celu precyzyjnej kontroli dystrybucji (fan-out), minimalizując pracę systemów podrzędnych i ruch wychodzący (egress).

Dostarczanie odbywa się w modelu push z semantyką co najmniej jednokrotnego dostarczenia (at-least-once). Event Grid ponawia próby z wykładniczym czasem oczekiwania (exponential back-off). Można skonfigurować maksymalną liczbę ponownych prób i czas życia zdarzenia (time-to-live); gdy dostarczenie ostatecznie się nie powiedzie lub zdarzenie wygaśnie, Event Grid może przenieść je do kolejki niedostarczonych komunikatów (dead-letter) w kontenerze Blob Storage wskazanym w subskrypcji. Przenoszenie do kolejki niedostarczonych komunikatów (dead-lettering) zachowuje ładunki i metadane do celów audytu lub ponownego przetwarzania; w razie potrzeby należy użyć osobnego procesu do odtworzenia i ponownego wysłania zdarzeń. Punkty końcowe typu webhook uczestniczą w uzgadnianiu poprawności (validation handshake) w celu potwierdzenia własności, a w przypadku sieci o ograniczonym dostępie można preferować zarządzane punkty końcowe Azure (Functions, Service Bus, Storage Queue), które nie wymagają publicznej ekspozycji i mogą korzystać z autoryzacji opartej na Azure AD.

Event Hubs: Partycje, grupy konsumentów, przepustowość, funkcja Capture i niezawodna konsumpcja

Usługa Event Hubs pozyskuje strumienie telemetrii i logów o dużej objętości z niskim opóźnieniem. Dane są dołączane do partycji, które są niezależnymi, uporządkowanymi dziennikami zatwierdzeń. Partycje są wybierane w momencie tworzenia w celu zrównoleglenia przepustowości; producenci przypisują klucz partycji, aby zachować kolejność dla danego klucza, a usługa haszuje klucze do odpowiednich partycji. Wielu czytelników może przetwarzać partycje równolegle; w obrębie jednej partycji kolejność jest gwarantowana.

Grupy konsumentów zapewniają niezależne widoki strumienia, pozwalając różnym aplikacjom przetwarzającym na utrzymywanie własnych pozycji bez wzajemnego zakłócania się (na przykład detektor anomalii w czasie rzeczywistym i potok do archiwizacji). Skalowanie czytelników w poziomie wymaga równoważenia własności partycji; klient EventProcessorClient z SDK koordynuje przypisywanie i ponowne równoważenie partycji między instancjami.

Jednostki przepustowości (Throughput Units, TU) w warstwie Standard definiują pojemność: każda jednostka TU uprawnia do określonych limitów przepustowości dla ruchu przychodzącego (ingress) i wychodzącego (egress). Funkcja Auto-inflate może automatycznie skalować jednostki TU w górę, aby sprostać szczytowemu obciążeniu. Warstwa Premium wykorzystuje jednostki przetwarzania (Processing Units) z dedykowaną mocą obliczeniową i przewidywalnym opóźnieniem. Monitoruj metryki ograniczania przepustowości (throttling), aby zweryfikować poprawność aprowizacji. Event Hubs obsługuje protokół Kafka na tym samym punkcie końcowym, co upraszcza migrację typu lift-and-shift dla klientów Kafka bez konieczności uruchamiania brokerów.

Producenci mogą używać protokołu AMQP lub HTTPS. AMQP (w tym AMQP-over-WebSockets na porcie 443) zapewnia multipleksowane, trwałe połączenia i wydajne batchowanie, i jest zalecany zarówno do wysyłania, jak i odbierania danych. HTTPS jest odpowiedni do prostych lub sporadycznych wysyłek, ale nie jest obsługiwany do odbierania danych; long-polling nie jest dostępny, a użytkownik traci na wydajności i kontroli przepływu. W ograniczonych sieciach korporacyjnych AMQP-over-WebSockets zachowuje wydajność, przechodząc przez typowe serwery proxy dla ruchu wychodzącego.

Tworzenie punktów kontrolnych (checkpointing) i zarządzanie przesunięciami (offsetami) są kluczowe dla poprawności działania. Każde zdarzenie ma numer sekwencyjny i przesunięcie (offset) w ramach danej partycji. Odbiorcy przesuwają się w strumieniu, a po pomyślnym przetworzeniu partii danych zapisują swoją pozycję jako punkt kontrolny w trwałym magazynie — zazwyczaj w kontenerze Azure Blob Storage za pośrednictwem EventProcessorClient. W przypadku ponownego uruchomienia lub przełączenia awaryjnego (failover), procesor wznawia pracę od ostatniego punktu kontrolnego, osiągając przetwarzanie “co najmniej raz” (at-least-once) przy użyciu idempotentnych procedur obsługi. Bez punktów kontrolnych konsumenci rozpoczynają pracę od domyślnej pozycji (najnowszej lub najwcześniejszej) i ryzykują ponowne przetworzenie lub pominięcie zdarzeń.

Funkcja Capture zapewnia archiwizację po stronie serwera poprzez automatyczne zapisywanie wsadowych plików Avro w trybie tylko do dołączania (append-only) do usługi Azure Blob Storage lub Azure Data Lake Storage Gen2, w konfigurowalnym oknie czasowym lub rozmiarowym. Eliminuje to potrzebę tworzenia niestandardowych mechanizmów wsadowych dla analityki ścieżki zimnej (cold-path), umożliwiając narzędziom podrzędnym (takim jak Spark, Synapse) konsumowanie niezmiennych segmentów strumienia z semantyką “dokładnie raz” (exactly-once) w odniesieniu do potoku funkcji Capture.

Service Bus i Queue Storage: Polecenia, przepływy pracy, sesje i obsługa zatrutych wiadomości

Service Bus to broker wiadomości klasy korporacyjnej przeznaczony do obsługi poleceń, przepływów pracy i scenariuszy integracyjnych, które wymagają zaawansowanych gwarancji dostarczenia. Kolejki implementują komunikację typu punkt-punkt; każda wiadomość jest odbierana przez jednego konkurującego konsumenta. Tematy z subskrypcjami umożliwiają model pub/sub: wydawcy wysyłają wiadomości do tematu, a niezależne subskrypcje otrzymują ich kopie na podstawie reguł. Reguły subskrypcji mogą być filtrami SQL, filtrami korelacji lub filtrami logicznymi (boolean true), które określają dla każdej wiadomości, czy ma zostać dołączona, i mogą dodawać lub modyfikować jej właściwości za pomocą akcji.

Sesje zapewniają uporządkowane i wyłączne przetwarzanie powiązanych ze sobą wiadomości. Należy przypisać ten sam identyfikator SessionId do wiadomości, które należą do jednej grupy (na przykład wszystkie kroki w zamówieniu nr 123). Odbiorca akceptuje blokadę sesji i przetwarza wiadomości w kolejności ich nadejścia dla tej sesji, opcjonalnie utrzymując jej stan, a następnie zwalnia sesję, aby kolejny konsument mógł przejąć jej obsługę. Jest to preferowany wzorzec do implementacji FIFO na dużą skalę. Bez sesji kolejność przetwarzania nie jest gwarantowana pomiędzy konkurującymi konsumentami.

Service Bus obsługuje tryby PeekLock i ReceiveAndDelete. PeekLock jest domyślnym trybem zapewniającym niezawodność: konsument blokuje wiadomość na czas trwania blokady, przetwarza ją, a następnie finalizuje operacją Complete. Jeśli przetwarzanie się nie powiedzie, konsument może użyć operacji Abandon (udostępniając wiadomość ponownie), Defer (odraczając jej pobranie na później na podstawie numeru sekwencyjnego) lub Dead-letter (przenosząc ją do oddzielnej podkolejki utraconych wiadomości danej encji z podaniem przyczyny i opisu błędu). Tryb ReceiveAndDelete zamienia niezawodność na przepustowość, usuwając wiadomość natychmiast po jej odebraniu.

Kluczowe właściwości kontrolują cykl życia wiadomości. Właściwość Time to Live (TTL) można ustawić jako domyślną dla całej encji i nadpisać dla pojedynczej wiadomości; wygasłe wiadomości są przenoszone do kolejki utraconych wiadomości lub odrzucane, w zależności od konfiguracji. Czas trwania blokady (lock duration) kontroluje, jak długo wiadomość pozostaje zablokowana na czas przetwarzania; SDK może automatycznie odnawiać blokady dla długotrwałych zadań w ramach maksymalnych limitów. Maksymalna liczba dostarczeń (max delivery count) jest konfigurowana dla każdej kolejki lub subskrypcji; po tej liczbie prób dostarczenia (w wyniku operacji Abandon lub utraty blokady) wiadomość jest automatycznie przenoszona do kolejki utraconych wiadomości (DLQ). Operatorzy opróżniają kolejkę DLQ w celach diagnostycznych lub w celu ponownego przetworzenia wiadomości z zastosowaniem logiki naprawczej.

Azure Queue Storage to prostsza, masowo skalowalna usługa kolejek z interfejsem REST, idealna do podstawowego oddzielania komponentów (decoupling), scenariuszy o wysokim stopniu rozproszenia (high fan-out) i obciążeń wrażliwych na koszty. Zapewnia dostarczenie co najmniej raz (at-least-once), limit czasu widoczności (visibility timeout) do ukrywania wiadomości podczas przetwarzania oraz TTL dla każdej wiadomości (domyślnie 7 dni, z możliwością konfiguracji, w tym braku wygasania). Pojedyncze wiadomości mają ograniczony rozmiar, a funkcje takie jak sesje, transakcje, gwarancje kolejności, wykrywanie duplikatów, podkolejki utraconych wiadomości i zaawansowane filtry nie są dostępne. Wybierz Queue Storage do prostych zadań w tle i bardzo wysokiej przepustowości przy niskich kosztach. Wybierz Service Bus, gdy potrzebujesz zaawansowanego routingu (tematy/subskrypcje), kolejności FIFO za pomocą sesji, zaplanowanego dostarczania, odraczania wiadomości, transakcji obejmujących wiele encji, okien do wykrywania duplikatów, wsparcia dla AMQP lub gdy niezawodność i ład integracyjny (governance) mają kluczowe znaczenie. Częstym wzorcem jest zbieranie lekkich zdarzeń za pomocą Event Grid lub Queue Storage i koordynowanie krytycznych dla biznesu poleceń oraz przejść stanów za pomocą Service Bus.

Notification Hubs: Routing powiadomień push i zarządzanie poświadczeniami platformy

Notification Hubs to wieloplatformowy silnik push, który zarządza rejestracjami urządzeń na dużą skalę i kieruje ukierunkowane powiadomienia do platform Apple (APNs), Android (FCM), Windows (WNS) i innych. Aplikacje rejestrują urządzenia za pomocą tagów i wyrażeń tagów, co umożliwia precyzyjny wybór odbiorców (na przykład user:42 AND region:emea OR topic:promotions). Szablony pozwalają wysłać pojedynczy, zlokalizowany ładunek (payload), który jest rozwijany przez renderery specyficzne dla danej platformy, redukując logikę serwera i umożliwiając personalizację dla każdego urządzenia przy minimalnym rozgałęzieniu logiki backendowej. Model instalacji (Installation model) usprawnia zarządzanie cyklem życia urządzenia, hermetyzując uchwyt platformy (platform handle), tagi i szablony w jednym zasobie na urządzenie.

Zarządzanie poświadczeniami platformy ma kluczowe znaczenie dla niezawodnego dostarczania. Dla APNs, prześlij poświadczenia oparte na certyfikacie lub tokenie (z Key ID, Team ID i tokenem .p8) i wybierz punkty końcowe typu sandbox lub produkcyjne dla każdego huba lub przestrzeni nazw, aby odizolować środowiska. Dla FCM, skonfiguruj odpowiednie poświadczenia serwera (dla HTTP v1, użyj konta usługi Google z zakresami OAuth2). Dla WNS, zarejestruj aplikację, aby uzyskać Package SID i klucz tajny klienta (client secret). Poświadczenia są okresowo rotowane; zaplanuj rotację i monitoruj kanały zwrotne pod kątem nieprawidłowych uchwytów urządzeń. Notification Hubs używa SAS do uwierzytelniania na poziomie huba z serwera aplikacji, podczas gdy role Azure AD chronią operacje zarządzania. Używaj konwencji tagowania do partycjonowania aplikacji wielodostępnych (multi-tenant) i ograniczaj wysyłanie za pomocą zaplanowanych lub wsadowych powiadomień push, aby spełnić limity platform.

Praktyczny Scenariusz Problemu

Starbucks wprowadza globalne rozwiązanie do zamawiania mobilnego, które musi powiadamiać klientów o gotowości zamówień, niezawodnie przetwarzać etapy pracy baristy i analizować telemetrię sprzętu w celu proaktywnej konserwacji.

  1. Połącz sterowany zdarzeniami cykl życia zamówienia za pomocą Event Grid
  1. Koordynuj przepływ pracy baristy za pomocą tematów i sesji Service Bus
  1. Pozyskuj i archiwizuj telemetrię sprzętu za pomocą Event Hubs
  1. Ukierunkuj powiadomienia push za pomocą Notification Hubs
  1. Zapewnij obserwowalność i odporność

Ta architektura czysto rozdziela zadania: Event Grid napędza reaktywną orkiestrację, Service Bus gwarantuje poprawność i kolejność przepływu pracy, Event Hubs obsługuje ciągłą telemetrię na dużą skalę, a Notification Hubs dostarcza precyzyjne, specyficzne dla platformy powiadomienia dla klientów przy minimalnej złożoności backendu.


Azure API Management · Wszystkie domeny · Buforowanie

Przećwicz te pytania → · Testy na czas na ExamRoll.io →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

Zdaj egzamin →

Przeglądaj Microsoft →

Related guides

Dostęp all-in-one

Jedna subskrypcja. Każdy egzamin.

Każdy plan odblokowuje nieograniczone wyszukiwanie odpowiedzi, testy praktyczne, wyjaśnienia AI i pełną bibliotekę zasobów — w ponad 20 językach.

Miesięczny
24.87
Just €0.83/day
Wszystko w cenie:
  • Nieograniczone wyszukiwanie odpowiedzi
  • Nieograniczone testy praktyczne
  • Wyjaśnienia wspomagane AI
  • Pełna biblioteka zasobów
  • Ponad 20 języków
  • Cotygodniowe aktualizacje treści
  • Nagrody i polecenia
  • Priorytetowe wsparcie
Rozpocznij bezpłatny okres próbny

Karta kredytowa nie jest wymagana*

Najlepsza wartość
12 miesięcy
179.87
Just €0.49/daySave 40%
Wszystko w cenie:
  • Nieograniczone wyszukiwanie odpowiedzi
  • Nieograniczone testy praktyczne
  • Wyjaśnienia wspomagane AI
  • Pełna biblioteka zasobów
  • Ponad 20 języków
  • Cotygodniowe aktualizacje treści
  • Nagrody i polecenia
  • Priorytetowe wsparcie
Rozpocznij bezpłatny okres próbny

Karta kredytowa nie jest wymagana*

✓ Plan darmowy w zestawie · ✓ Anuluj w dowolnym momencie · ✓ Wszystkie plany odblokowują pełny produkt