Cvičení – konfigurace aplikací pro odesílání nebo příjem zpráv prostřednictvím centra událostí

Dokončeno

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.

  1. 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
    
  2. 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.

  3. 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
    
  4. 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ě.

  5. 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
    
  6. 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"
    
  7. 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.

  1. 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íč.

  1. Přejděte do složky SimpleSend.

    cd ~/azure-event-hubs/samples/Java/Basic/SimpleSend/src/main/java/com/microsoft/azure/eventhubs/samples/SimpleSend
    
  2. 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í.

  3. Pokud ještě není otevřený, otevřete SimpleSend.java tak, že ho vyberete ze seznamu souborů.

  4. 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.

  5. 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 .

    Snímek obrazovky zobrazující položky nabídky pro uložení souboru a zavření editoru

Použití nástroje Maven k vytvoření souboru SimpleSend.java

Teď sestavíte aplikaci v Javě spuštěním příkazů mvn .

  1. 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
    
  2. 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.

    Sestaví výsledky pro aplikaci odesílatele.

Ú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.

  1. 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
    
  2. Otevřete editor Cloud Shellu.

    code .
    
  3. V Průzkumníku souborů vlevo vyberte soubor EventProcessorSample.java.

  4. 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
    
  5. Uložte EventProcessorSample.java pomocí nabídky „...“ nebo klávesové zkratky (Ctrl+S ve Windows a Linuxu, Cmd+S v systému macOS).

  6. Zavřete editor.

Použití nástroje Maven k vytvoření souboru EventProcessorSample.java

  1. 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
    
  2. 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.

    Vytvoření výsledků přijímací aplikace

Spuštění odesílací a přijímací aplikace

  1. 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
    
  2. 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...
    
  3. 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
    
  4. 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í.