Ćwiczenie — konfigurowanie aplikacji do wysyłania lub odbierania komunikatów za pośrednictwem centrum zdarzeń
Teraz możesz przystąpić do konfigurowania aplikacji wydawcy i klientów dla centrum zdarzeń.
W tej lekcji skonfigurujesz aplikacje do wysyłania lub odbierania komunikatów za pośrednictwem centrum zdarzeń. Jedna aplikacja działa jako nadawca komunikatów (SimpleSend), drugi jako odbiornik komunikatów (EventProcessorSample). Aplikacje są przechowywane w repozytorium GitHub.
Tworzenie standardowego konta magazynu ogólnego przeznaczenia
Aplikacja odbiorcy Java przechowuje komunikaty w usłudze Azure Blob Storage, co wymaga konta magazynu. Aby utworzyć konto magazynu (ogólnego przeznaczenia w wersji 2), użyj storage account create
polecenia . Definiujemy następujące parametry dla tego polecenia:
Parametr | Opis |
---|---|
name (wymagane) | Nazwa konta magazynu. |
grupa zasobów (wymagana) | Właściciel grupy zasobów jest grupą zasobów piaskownicy, która jest już zdefiniowana jako wartość domyślna. |
lokalizacja (opcjonalnie) | Region jest już zdefiniowany jako wartość domyślna, ale możesz go uwzględnić, jeśli chcesz ustawić inny region od domyślnej lokalizacji grupy zasobów. |
sku | Domyślna wartość jednostki SKU konta magazynu to Standard_RAGRS. Jednak w tym ćwiczeniu określamy tę wartość. |
W poprzednim ćwiczeniu zdefiniowaliśmy wartości domyślne dla grupy zasobów i lokalizacji, abyśmy mogli pominąć te parametry z polecenia .
W usłudze Azure Cloud Shell ustaw nazwę konta magazynu na zmienną. Nazwa konta magazynu musi być unikatowa na platformie Azure i musi zawierać od 3 do 24 cyfr lub małych liter.
STORAGE_NAME=storagename$RANDOM
Uruchom następujące polecenie, aby utworzyć konto magazynu.
az storage account create --name $STORAGE_NAME --sku Standard_RAGRS --encryption-service blob
Napiwek
Utworzenie tego konta magazynu może chwilę potrwać. Jeśli tworzenie konta magazynu zakończy się niepowodzeniem, zmień zmienną środowiskową i spróbuj ponownie.
Uruchom następujące polecenie, aby uzyskać klucze dostępu skojarzone z kontem magazynu.
az storage account keys list --account-name $STORAGE_NAME
Dwa klucze skojarzone z kontem magazynu są danymi wyjściowymi w formacie JSON. Skopiuj i zapisz wartość klucza key1 do użycia w przyszłości. Ten klucz jest potrzebny do uzyskania dostępu do konta magazynu.
Uruchom następujące polecenie, aby uzyskać parametry połączenia dla konta magazynu.
az storage account show-connection-string -n $STORAGE_NAME
Dane wyjściowe zawierają szczegóły połączenia dla konta magazynu. Skopiuj i zapisz wartość connectionString. Powinna to wyglądać następująco:
"DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=storage_account_name;AccountKey=xxxxxxxxxxx"
Uruchom następujące polecenie, aby utworzyć kontener o nazwie messages na koncie magazynu. Użyj wartości connectionString skopiowaną w poprzednim kroku.
az storage container create --name messages --connection-string "<connection string here>"
Klonowanie repozytorium GitHub usługi Event Hubs
Pliki źródłowe aplikacji, które tworzysz w tej lekcji, znajdują się w repozytorium GitHub.
Uruchom narzędzie GitBash na komputerze.
Uruchom następujące polecenie, aby sklonować rozwiązanie projektu Git:
cd ~ git clone https://github.com/Azure/azure-event-hubs.git
Uruchom program VS Code na komputerze.
Edytuj SimpleSend.java, aby wysyłać zdarzenia do centrum zdarzeń
W tym ćwiczeniu zmodyfikujesz aplikację SimpleSend przy użyciu programu Visual Studio Code (VS Code). Musisz dodać przestrzeń nazw usługi Event Hubs, nazwę centrum zdarzeń, nazwę zasad dostępu współdzielonego i klucz podstawowy.
Uruchom program VS Code.
Wybierz Plik —>Otwórz folderi wybierz folder SimpleSend w folderze c:/users/USERID/azure-event-hubs/samples/java/basic.
W Eksploratorze Kodów w lewym panelu rozwiń węzeł src, a następnie dwukrotnie kliknij SimpleSend.java, aby otworzyć go w edytorze.
W edytorze znajdź i zastąp następujące ciągi w obszarze "ConnectionStringBuilder":
-
<EVENT HUBS NAMESPACE - CONNECTION STRING>
z parametrami połączenia z przestrzenią nazw usługi Event Hubs. -
<EVENT HUB NAME>
na nazwę Twojego centrum zdarzeń.
W przypadku podstawowego klucza sygnatury dostępu współdzielonego podczas tworzenia przestrzeni nazw usługi Event Hubs jest tworzony 256-bitowy klucz SAS o nazwie RootManageSharedAccessKey i zawiera klucze podstawowe i pomocnicze, które udzielają uprawnień do wysyłania, nasłuchiwania i zarządzania prawami do przestrzeni nazw. Wcześniej w tym ćwiczeniu został uzyskany klucz, uruchamiając polecenie interfejsu wiersza polecenia platformy Azure; Można jednak również znaleźć klucze i parametry połączenia, wybierając przestrzeń nazw usługi Event Hubs w witrynie Azure Portal, a następnie w menu w obszarze Ustawienia wybierz pozycję Zasady dostępu współdzielonego. Teraz wybierz nazwę zasad RootManageSharedAccessKey, aby wyświetlić klucze zasad sygnatury dostępu współdzielonego.
-
Zapisz plik SimpleSend.java.
Tworzenie pliku SimpleSend.java za pomocą narzędzia Maven
Teraz skompilujesz aplikację Java, uruchamiając polecenia mvn .
W Eksploratorze kodu kliknij prawym przyciskiem myszy SimpleSend.javai wybierz pozycję Otwórz w zintegrowanym terminalu.
Wprowadź następujące polecenie, aby przejść do głównego folderu SimpleSend.
cd ~/azure-event-hubs/samples/Java/Basic/SimpleSend
Skompiluj aplikację Java SimpleSend. To polecenie kompiluje aplikację przy użyciu szczegółów połączenia centrum zdarzeń.
mvn clean package -DskipTests
Proces kompilacji może potrwać kilka minut. Zanim przejdziesz dalej, upewnij się, że jest wyświetlany komunikat [INFO] BUDOWANIE POWIODŁO SIĘ.
Edytowanie EventProcessorSample.java odbierających zdarzenia do centrum zdarzeń
Teraz skonfigurujesz aplikację odbiorcy (znaną również jako subskrybent lub odbiorca) w celu pozyskiwania danych z centrum zdarzeń.
W przypadku aplikacji odbiorcy dostępne są dwie klasy: EventHubReceiver i EventProcessorClient. Element EventProcessorClient jest oparty na usłudze EventHubReceiver, ale zapewnia prostszy interfejs programowy niż EventHubReceiver. EventProcessorClient może automatycznie dystrybuować partycje komunikatów w wielu wystąpieniach klasy EventProcessorClient przy użyciu tego samego konta magazynu.
W tej procedurze użyjesz EventProcessorClient
metody . Edytujesz aplikację EventProcessorSample, aby dodać następujące wartości: Przestrzeń nazw usługi Event Hubs, nazwa centrum zdarzeń, nazwa zasad dostępu współdzielonego i klucz podstawowy, nazwa konta magazynu, parametry połączenia i nazwa kontenera.
Uruchom kolejną instancję VS Code.
Wybierz Plik ->Otwórz folder, a następnie wybierz folder EventProcessorSample w katalogu c:/users/USERID/azure-event-hubs/samples/java/basic.
W Eksploratorze kodu w lewym panelu rozwiń src, a następnie kliknij dwukrotnie EventProcessorSample.java, aby otworzyć go w edytorze.
W edytorze znajdź i zastąp następujące ciągi w edytorze:
-
<EVENT HUBS NAMESPACE - CONNECTION STRING>
— ciąg połączenia z przestrzenią nazw Event Hubs. -
<EVENT HUB NAME>
— nazwa centrum zdarzeń. -
<AZURE STORAGE - CONNECTION STRING>
— parametry połączenia z kontem usługi Azure Storage. - Upewnij się, że nazwa kontenera blob to komunikaty. Jeśli używasz innej nazwy kontenera, użyj tej nazwy.
-
Zapisz EventProcessorSample.java.
Tworzenie pliku EventProcessorSample.java za pomocą narzędzia Maven
W Eksploratorze kodu kliknij prawym przyciskiem myszy EventProcessorSample.javai wybierz pozycję Otwórz w zintegrowanym terminalu.
Przejdź do głównego folderu EventProcessorSample , uruchamiając następujące polecenie.
cd ~/azure-event-hubs/samples/Java/Basic/EventProcessorSample
Skompiluj aplikację Java SimpleSend, uruchamiając następujące polecenie, aby upewnić się, że aplikacja używa szczegółów połączenia dla centrum zdarzeń.
mvn clean package -DskipTests
Proces kompilacji może potrwać kilka minut. Zanim przejdziesz dalej, upewnij się, że jest wyświetlany komunikat [INFO] BUDOWANIE POWIODŁO SIĘ.
Uruchamianie aplikacji nadawcy i odbiorcy
Uruchom aplikację EventProcessorSample, uruchamiając następujące polecenie.
cd ~/azure-event-hubs/samples/Java/Basic/EventProcessorSample java -jar ./target/eventprocessorsample-1.0.0-jar-with-dependencies.jar
Powinny zostać wyświetlone następujące dane wyjściowe z aplikacji odbiorcy:
Starting event processor Press enter to stop.
Przejdź do okna programu VS Code z otwartym kodem aplikacji wysyłającej (SimpleSend). W zintegrowanym terminalu uruchom aplikację Java z wiersza polecenia, uruchamiając następujące polecenie
java
i określając pakiet .jar.cd ~/azure-event-hubs/samples/Java/Basic/SimpleSend java -jar ./target/simplesend-1.0.0-jar-with-dependencies.jar
Po wyświetleniu komunikatu Wysyłanie zakończone...wprowadź lub CTRL+C, aby zatrzymać aplikację.
jar-with-dependencies.jar SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. 2018-09-18T19:42:15.146Z: Send Complete...
W programie VS Code z uruchomioną aplikacją odbiorcy sprawdź, czy są wyświetlane komunikaty. Naciśnij Enter lub naciśnij CTRL+C, aby zakończyć program.
... Starting event processor Press enter to stop. Processing event from partition 0 with sequence number 1 with body: Message 0 Processing event from partition 0 with sequence number 2 with body: Message 1 Processing event from partition 0 with sequence number 3 with body: Message 2 Processing event from partition 0 with sequence number 4 with body: Message 3 Processing event from partition 0 with sequence number 5 with body: Message 4
Podsumowanie
W tej lekcji skonfigurowano aplikację nadawcy gotową do wysyłania komunikatów do centrum zdarzeń. Skonfigurowano również aplikację odbiorcy gotową do odbierania komunikatów z centrum zdarzeń.