Cvičení – konfigurace aplikací pro odesílání nebo příjem zpráv prostřednictvím centra událostí
Teď jste připraveni nakonfigurovat aplikace vydavatele a uživatele pro centrum událostí.
V této lekci nakonfigurujete aplikace tak, aby odesílaly nebo přijímaly zprávy prostřednictvím centra událostí. Jedna aplikace funguje jako odesílatel zprávy (SimpleSend), druhá jako příjemce zprávy (EventProcessorSample). Vzhledem k tomu, že tyto aplikace jsou napsané v Javě, můžete v prohlížeči provádět veškerý vývoj, testování a správu. Stejná konfigurace se ale musí používat pro každou platformu, jako je .NET. Aplikace jsou uložené v úložišti GitHub.
Vytvoření účtu obecného úložiště úrovně Standard
Přijímací aplikace v Javě ukládá zprávy ve službě Azure Blob Storage, která vyžaduje účet úložiště. K vytvoření účtu úložiště (pro obecné účely V2) použijte storage account create
příkaz. Pro tento příkaz definujeme následující parametry:
Parametr | Popis |
---|---|
name (povinné) | Název účtu úložiště. |
skupina prostředků (povinné) | Vlastníkem skupiny prostředků je skupina prostředků sandboxu, která je již definována jako výchozí hodnota. |
umístění (volitelné) | Oblast je již definována jako výchozí hodnota, ale můžete ji zahrnout, pokud chcete nastavit jinou oblast než výchozí umístění skupiny prostředků. |
sku | Výchozí hodnota skladové položky účtu úložiště je Standard_RAGRS. V tomto cvičení ale tuto hodnotu určíme. |
V předchozím cvičení jsme definovali výchozí hodnoty pro skupinu prostředků a umístění, abychom tyto parametry z příkazu vynechali.
V Azure Cloud Shellu nastavte název účtu úložiště na proměnnou. Název účtu úložiště musí být jedinečný v rámci Azure a musí obsahovat 3 až 24 číslic nebo malá písmena.
STORAGE_NAME=storagename$RANDOM
Spuštěním následujícího příkazu vytvořte účet úložiště.
az storage account create --name $STORAGE_NAME --sku Standard_RAGRS --encryption-service blob
Tip
Vytvoření tohoto účtu úložiště může chvíli trvat. Pokud se vytvoření účtu úložiště nezdaří, změňte proměnnou prostředí a zkuste to znovu.
Spuštěním následujícího příkazu získejte přístupové klíče přidružené k vašemu účtu úložiště.
az storage account keys list --account-name $STORAGE_NAME
Výstupem ve formátu JSON jsou dva klíče přidružené k vašemu účtu úložiště. Zkopírujte a uložte hodnotu klíče1 pro budoucí použití. Tento klíč potřebujete pro přístup k účtu úložiště.
Spuštěním následujícího příkazu získejte připojovací řetězec pro váš účet úložiště.
az storage account show-connection-string -n $STORAGE_NAME
Výstup obsahuje podrobnosti o připojení k vašemu účtu úložiště. Zkopírujte hodnotu connectionString a uložte si ji. Měla by vypadat přibližně takto:
"DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=storage_account_name;AccountKey=xxxxxxxxxxx"
Spuštěním následujícího příkazu vytvořte v účtu úložiště kontejner s názvem zprávy . Použijte hodnotu connectionString, kterou jste zkopírovali v předchozím kroku.
az storage container create --name messages --connection-string "<connection string here>"
Klonování úložiště GitHub služby Event Hubs
V Cloud Shellu naklonujte úložiště Event Hubs na GitHubu pomocí git
. Zdrojové soubory pro aplikace, které vytvoříte v této lekci, se nacházejí v úložišti GitHub.
Spuštěním následujících příkazů se ujistěte, že jste v domovském adresáři služby Cloud Shell, a pak naklonujte toto úložiště.
cd ~ git clone https://github.com/Azure/azure-event-hubs.git
Úložiště se naklonuje do domovské složky.
Úpravy souboru SimpleSend.java
V tomto cvičení použijete integrovaný editor Cloud Shellu k úpravě aplikace SimpleSend. Musíte přidat obor názvů služby Event Hubs, název centra událostí, název zásady sdíleného přístupu a primární klíč.
Přejděte do složky SimpleSend.
cd ~/azure-event-hubs/samples/Java/Basic/SimpleSend/src/main/java/com/microsoft/azure/eventhubs/samples/SimpleSend
Otevřete editor Cloud Shellu v aktuální složce.
code .
Soubory v aktuální složce jsou uvedené v nabídce vlevo a na pravé straně se zobrazí obsah názvu souboru uvedeného v záhlaví.
Pokud ještě není otevřený, otevřete SimpleSend.java tak, že ho vyberete ze seznamu souborů.
V editoru vyhledejte a nahraďte následující řetězce v části ConnectionStringBuilder:
"Your Event Hubs namespace name"
nahraďte názvem vašeho oboru názvů Event Hubs."Your Event Hub"
nahraďte názvem vašeho centra událostí."Your policy name"
nahraďte hodnotou RootManageSharedAccessKey."Your primary SAS key"
nahraďte hodnotou klíče primaryKey svého oboru názvů Event Hubs, kterou jste si uložili v předchozích krocích.
Pokud tyto hodnoty zapomenete, můžete přepnout do okna terminálu pod editorem a spustit
echo
příkaz pro výpis proměnných prostředí. Příklad:echo $NS_NAME echo $HUB_NAME echo $STORAGE_NAME
Při vytváření oboru názvů služby Event Hubs se pro primární klíč SAS vytvoří 256bitový klíč SAS s názvem RootManageSharedAccessKey a obsahuje primární a sekundární klíče, které udělují oprávnění k odesílání, naslouchání a správě oprávnění k oboru názvů. Dříve v tomto cvičení jste získali klíč spuštěním příkazu Azure CLI. Klíče a připojovací řetězec ale můžete najít také tak, že vyberete obor názvů služby Event Hubs na webu Azure Portal a pak v nabídce v části Nastavení vyberete zásady sdíleného přístupu. Teď výběrem názvu zásady RootManageSharedAccessKey zobrazíte klíče zásad SAS.
Uložte soubor SimpleSend.java a zavřete editor. Vyberte v pravém horním rohu editoru a použijte položky nabídky Uložit a zavřít editor .
Použití nástroje Maven k vytvoření souboru SimpleSend.java
Teď sestavíte aplikaci v Javě spuštěním příkazů mvn .
V Cloud Shellu zadejte následující příkaz, který přejde do hlavní složky SimpleSend .
cd ~/azure-event-hubs/samples/Java/Basic/SimpleSend
Sestavte aplikaci SimpleSend v Javě. Tento příkaz sestaví aplikaci pomocí podrobností o připojení pro centrum událostí.
mvn clean package -DskipTests
Dokončení procesu sestavení může trvat několik minut. Než budete pokračovat, zkontrolujte, že se zobrazila zpráva [INFO] BUILD SUCCESS.
Úpravy souboru EventProcessorSample.java
Teď nakonfigurujete příjemce (označovanou také jako odběratel nebo příjemce) pro příjem dat z centra událostí.
Pro přijímací aplikaci jsou k dispozici dvě třídy: EventHubReceiver a EventProcessorHost. EventProcessorHost je postaven na EventHubReceiver, ale poskytuje jednodušší programové rozhraní než EventHubReceiver. EventProcessorHost může automaticky rozdělovat oddíly zprávy mezi více instancí EventProcessorHost s použitím stejného účtu úložiště.
V tomto postupu použijete metodu EventProcessorHost
. Aplikaci EventProcessorSample upravíte tak, aby přidala následující hodnoty: Obor názvů služby Event Hubs, název centra událostí, název zásady sdíleného přístupu a primární klíč, název účtu úložiště, připojovací řetězec a název kontejneru.
Přejděte do složky EventProcessorSample spuštěním následujícího příkazu.
cd ~/azure-event-hubs/samples/Java/Basic/EventProcessorSample/src/main/java/com/microsoft/azure/eventhubs/samples/eventprocessorsample
Otevřete editor Cloud Shellu.
code .
V Průzkumníku souborů vlevo vyberte soubor EventProcessorSample.java.
V editoru najděte následující řetězce a nahraďte je:
----EventHubNamespaceName----
nahraďte názvem vašeho oboru názvů Event Hubs.----EventHubName----
nahraďte názvem vašeho centra událostí.----SharedAccessSignatureKeyName----
nahraďte hodnotou RootManageSharedAccessKey.----SharedAccessSignatureKey----
nahraďte hodnotou klíče primaryKey svého oboru názvů Event Hubs, kterou jste si uložili v předchozích krocích.----AzureStorageConnectionString----
nahraďte připojovacím řetězcem účtu úložiště, který jste si uložili v předchozích krocích.----StorageContainerName----
nahraďte textem messages.----HostNamePrefix----
nahraďte názvem vašeho účtu úložiště.
Pokud tyto hodnoty zapomenete, můžete přepnout do okna terminálu pod editorem a spustit
echo
příkaz pro výpis proměnných prostředí. Příklad:echo $NS_NAME echo $HUB_NAME echo $STORAGE_NAME
Uložte EventProcessorSample.java pomocí nabídky „...“ nebo klávesové zkratky (Ctrl+S ve Windows a Linuxu, Cmd+S v systému macOS).
Zavřete editor.
Použití nástroje Maven k vytvoření souboru EventProcessorSample.java
Spuštěním následujícího příkazu přejděte do hlavní složky EventProcessorSample .
cd ~/azure-event-hubs/samples/Java/Basic/EventProcessorSample
Sestavte aplikaci Java SimpleSend spuštěním následujícího příkazu, abyste zajistili, že vaše aplikace používá podrobnosti o připojení pro vaše centrum událostí.
mvn clean package -DskipTests
Dokončení procesu sestavení může trvat několik minut. Než budete pokračovat, zkontrolujte, že se zobrazila zpráva [INFO] BUILD SUCCESS.
Spuštění odesílací a přijímací aplikace
Spusťte aplikaci Java z příkazového řádku spuštěním následujícího
java
příkazu a zadáním balíčku .jar. Ke spuštění aplikace SimpleSend použijte následující příkazy.cd ~/azure-event-hubs/samples/Java/Basic/SimpleSend java -jar ./target/simplesend-1.0.0-jar-with-dependencies.jar
Když se zobrazí Send Complete... (Odeslání dokončeno...), stiskněte Enter.
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...
Spuštěním následujícího příkazu spusťte aplikaci EventProcessorSample.
cd ~/azure-event-hubs/samples/Java/Basic/EventProcessorSample java -jar ./target/eventprocessorsample-1.0.0-jar-with-dependencies.jar
Když se v konzole přestanou zobrazovat zprávy, ukončete program stisknutím klávesy Enter nebo stisknutím kombinace kláves CTRL+C .
... SAMPLE: Partition 0 checkpointing at 1064,19 SAMPLE (3,1120,20): "Message 80" SAMPLE (3,1176,21): "Message 84" SAMPLE (3,1232,22): "Message 88" SAMPLE (3,1288,23): "Message 92" SAMPLE (3,1344,24): "Message 96" SAMPLE: Partition 3 checkpointing at 1344,24 SAMPLE (2,1120,20): "Message 83" SAMPLE (2,1176,21): "Message 87" SAMPLE (2,1232,22): "Message 91" SAMPLE (2,1288,23): "Message 95" SAMPLE (2,1344,24): "Message 99" SAMPLE: Partition 2 checkpointing at 1344,24 SAMPLE: Partition 1 batch size was 3 for host mystorageacct2018-46d60a17-7060-4b53-b0e0-cca70c970a47 SAMPLE (0,1120,20): "Message 81" SAMPLE (0,1176,21): "Message 85" SAMPLE: Partition 0 batch size was 10 for host mystorageacct2018-46d60a17-7060-4b53-b0e0-cca70c970a47 SAMPLE: Partition 0 got event batch SAMPLE (0,1232,22): "Message 89" SAMPLE (0,1288,23): "Message 93" SAMPLE (0,1344,24): "Message 97" SAMPLE: Partition 0 checkpointing at 1344,24 SAMPLE: Partition 3 batch size was 8 for host mystorageacct2018-46d60a17-7060-4b53-b0e0-cca70c970a47 SAMPLE: Partition 2 batch size was 9 for host mystorageacct2018-46d60a17-7060-4b53-b0e0-cca70c970a47 SAMPLE: Partition 0 batch size was 3 for host mystorageacct2018-46d60a17-7060-4b53-b0e0-cca70c970a47
Shrnutí
V této lekci jste nakonfigurovali aplikaci odesílatele připravenou k odesílání zpráv do centra událostí. Také jste nakonfigurovali přijímací aplikaci připravenou na příjem zpráv z centra událostí.