Gyakorlat – Alkalmazások konfigurálása üzenetek eseményközponton keresztüli küldésére vagy fogadására
Most már készen áll a publikáló és fogyasztói alkalmazások konfigurálására az eseményközpont számára.
Ebben a leckében úgy konfigurálja az alkalmazásokat, hogy üzeneteket küldjenek vagy fogadjanak az eseményközponton keresztül. Az egyik alkalmazás üzenetküldőként (SimpleSend), a másik üzenet fogadójaként (EventProcessorSample) működik. Mivel ezek az alkalmazások Java nyelven vannak megírva, a böngészőben minden fejlesztést, tesztelést és felügyeletet elvégezhet. Azonban minden platformhoz, például a .NET-hez ugyanazt a konfigurációt kell használni. Az alkalmazások egy GitHub-adattárban vannak tárolva.
Általános célú standard szintű tárfiók létrehozása
A Java-fogadó alkalmazás az Azure Blob Storage-ban tárolja az üzeneteket, amelyhez tárfiók szükséges. Tárfiók (általános célú V2) létrehozásához használja a storage account create
parancsot. A parancshoz a következő paramétereket határozzuk meg:
Paraméter | Leírás |
---|---|
név (kötelező) | A tárfiók neve. |
erőforráscsoport (kötelező) | Az erőforráscsoport tulajdonosa a tesztkörnyezeti erőforráscsoport, amely már alapértelmezett értékként van definiálva. |
hely (nem kötelező) | A régió már alapértelmezett értékként van definiálva, de belefoglalhatja, ha az alapértelmezett erőforráscsoport helyétől eltérő régiót szeretne beállítani. |
sku | A tárfiók alapértelmezett termékváltozat-értéke Standard_RAGRS. Ebben a gyakorlatban azonban ezt az értéket adhatja meg. |
Az előző gyakorlatban meghatároztuk az erőforráscsoport és a hely alapértelmezett értékeit, így ezeket a paramétereket kihagyhatjuk a parancsból.
Az Azure Cloud Shellben állítsa a tárfiók nevét egy változóra. A tárfiók nevének egyedinek kell lennie az Azure-ban, és 3–24 számot vagy kisbetűt kell tartalmaznia.
STORAGE_NAME=storagename$RANDOM
Futtassa a következő parancsot a tárfiók létrehozásához.
az storage account create --name $STORAGE_NAME --sku Standard_RAGRS --encryption-service blob
Tipp.
A tárfiók létrehozása eltarthat egy ideig. Ha a tárfiók létrehozása sikertelen, módosítsa a környezeti változót, és próbálkozzon újra.
Futtassa a következő parancsot a tárfiókhoz társított hozzáférési kulcsok beszerzéséhez.
az storage account keys list --account-name $STORAGE_NAME
A tárfiókhoz társított két kulcs JSON formátumú kimenet. Másolja és mentse az 1. kulcs értékét későbbi használatra. Erre a kulcsra van szüksége a tárfiók eléréséhez.
Futtassa a következő parancsot a tárfiókhoz tartozó kapcsolati sztring beszerzéséhez.
az storage account show-connection-string -n $STORAGE_NAME
A kimenet tartalmazza a tárfiók kapcsolati adatait. Másolja ki és mentse a connectionString (kapcsolati sztring) értékét. Ennek az alábbihoz hasonlónak kell lennie:
"DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=storage_account_name;AccountKey=VZjXuMeuDqjCkT60xX6L5fmtXixYuY2wiPmsrXwYHIhwo736kSAUAj08XBockRZh7CZwYxuYBPe31hi8XfHlWw=="
Futtassa az alábbi parancsot egy üzenetek nevű tároló létrehozásához a tárfiókban. Használja az előző lépésben másolt connectionString értéket.
az storage container create --name messages --connection-string "<connection string here>"
Az eseményközpontok GitHub-adattárának klónozása
A Cloud Shellben klónozza az eseményközpontok GitHub-adattárát a következővel git
: . Az ebben az egységben létrehozott alkalmazások forrásfájljai egy GitHub-adattárban találhatók.
A következő parancsokkal győződjön meg arról, hogy a kezdőkönyvtárban van a Cloud Shellben, és klónozza ezt az adattárat.
cd ~ git clone https://github.com/Azure/azure-event-hubs.git
A rendszer klónozza az adattárat a kezdőkönyvtárba.
A SimpleSend.java szerkesztése
Ebben a gyakorlatban a beépített Cloud Shell-szerkesztő használatával módosíthatja a SimpleSend alkalmazást. Hozzá kell adnia az Event Hubs-névteret, az eseményközpont nevét, a megosztott hozzáférési szabályzat nevét és az elsődleges kulcsot.
Lépjen a SimpleSend mappába.
cd ~/azure-event-hubs/samples/Java/Basic/SimpleSend/src/main/java/com/microsoft/azure/eventhubs/samples/SimpleSend
Nyissa meg a Cloud Shell-szerkesztőt az aktuális mappában.
code .
Az aktuális mappában lévő fájlok a bal oldali menüben jelennek meg, a jobb oldali szerkesztőtér pedig a címsorban felsorolt fájlnév tartalmát jeleníti meg.
Ha még nem nyitotta meg, nyissa meg a SimpleSend.java fájlt a fájllistában való kijelöléssel.
A szerkesztőben keresse meg és cserélje le a következő sztringeket a "Csatlakozás ionStringBuilder" alatt:
"Your Event Hubs namespace name"
az Event Hubs-névtér nevével."Your Event Hub"
az eseményközpont nevével."Your policy name"
a RootManageSharedAccessKey értékével."Your primary SAS key"
a primaryKey kulcs értékével a korábban mentett Event Hubs-névtérhez.
Ha elfelejti ezeket az értékeket, váltson a szerkesztő alatti terminálablakra, és futtassa a
echo
parancsot a környezeti változók listázásához. Például:echo $NS_NAME echo $HUB_NAME echo $STORAGE_NAME
Az elsődleges SAS-kulcs esetében egy Event Hubs-névtér létrehozásakor létrejön egy RootManageSharedAccessKey nevű 256 bites SAS-kulcs, amely elsődleges és másodlagos kulcsokat tartalmaz, amelyek a névtérhez való jogosultságokat biztosítanak, figyelik és kezelik. A gyakorlat korábbi részében egy Azure CLI-parancs futtatásával szerezte be a kulcsot; A kulcsokat és kapcsolati sztring azonban az Event Hubs-névtér azure portalon való kiválasztásával is megtalálhatja, majd a Gépház alatti menüben válassza a Megosztott hozzáférési szabályzatok lehetőséget; most válassza ki a RootManageSharedAccessKey házirendnevet az SAS-szabályzatkulcsok megjelenítéséhez.
Mentse a SimpleSend.java fájlt, majd zárja be a szerkesztőt.
Tipp.
A módosítások mentéséhez használja a Ctrl+S billentyűkombinációt. Lépjen ki a szerkesztőből a Ctrl+X billentyűkombináció lenyomásával Windows és Linux rendszeren, macOS rendszeren pedig Cmd+S billentyűkombinációval. A Cloud Shell terminálablakától eltérően a Cloud Shell-szerkesztő az operációs rendszer tipikus másolási/beillesztési billentyűparancsait használja. Másik lehetőségként nyissa meg a szerkesztőmenüt a jobb felső sarokban található három pontra (...) kattintva további szerkesztési parancsokért.
A SimpleSend.java fájl létrehozása a Maven használatával
Most mvn-parancsok futtatásával hozza létre a Java-alkalmazást.
A Cloud Shellben adja meg a következő parancsot a SimpleSend fő mappájához való navigáláshoz.
cd ~/azure-event-hubs/samples/Java/Basic/SimpleSend
A Java-alapú SimpleSend alkalmazás létrehozása. Ez a parancs az eseményközpont kapcsolati adataival hozza létre az alkalmazást.
mvn clean package -DskipTests
A létrehozási folyamat több percet is igénybe vehet. Mielőtt folytatná győződjön meg róla, hogy megjelent az [INFO] BUILD SUCCESS (Sikeres létrehozás) üzenet.
Az EventProcessorSample.java szerkesztése
Mostantól konfigurálhat egy fogadóalkalmazást (más néven előfizetőt vagy fogyasztót) az eseményközpontból származó adatok betöltéséhez.
A fogadóalkalmazáshoz két osztály érhető el: EventHubReceiver és EventProcessorHost. Az EventProcessorHost az EventHubReceiverre épül, de egyszerűbb programozott felületet biztosít, mint az EventHubReceiver. Az EventProcessorHost automatikusan terjesztheti az üzenetpartíciókat az EventProcessorHost több példánya között ugyanannak a tárfióknak a használatával.
Ebben az eljárásban a metódust EventProcessorHost
használja. Az EventProcessorSample alkalmazást a következő értékek hozzáadásához szerkessze: Az Event Hubs-névtér, az eseményközpont neve, a közös hozzáférésű hozzáférési szabályzat neve és az elsődleges kulcs, a tárfiók neve, a kapcsolati sztring és a tároló neve.
Az alábbi parancs futtatásával váltson az EventProcessorSample mappára.
cd ~/azure-event-hubs/samples/Java/Basic/EventProcessorSample/src/main/java/com/microsoft/azure/eventhubs/samples/eventprocessorsample
Nyissa meg a Cloud Shell-szerkesztőt.
code .
Jelölje ki az EventProcessorSample.java fájlt.
Keresse meg és cserélje le a következő sztringeket a szerkesztőben:
----EventHubNamespaceName----
az Event Hubs-névtér nevével.----EventHubName----
az eseményközpont nevével.----SharedAccessSignatureKeyName----
a RootManageSharedAccessKey értékével.----SharedAccessSignatureKey----
a primaryKey kulcs értékével a korábban mentett Event Hubs-névtérhez.----AzureStorageConnectionString----
a tárfiók kapcsolati sztringjével, amelyet korábban mentett.----StorageContainerName----
a messages értékével.----HostNamePrefix----
a tárfiókja nevére.
Mentse az EventProcessorSample.java fájlt a három ponttal (...) jelölt menü vagy a billentyűparancs (Windowson és Linuxon Ctrl+S, macOS rendszeren Cmd+S) használatával.
Zárja be a szerkesztőt.
Az EventProcessorSample.java fájl létrehozása a Maven használatával
Az alábbi parancs futtatásával váltson a fő EventProcessorSample mappára.
cd ~/azure-event-hubs/samples/Java/Basic/EventProcessorSample
A Következő parancs futtatásával hozza létre a Java SimpleSend alkalmazást, hogy az alkalmazás a kapcsolat adatait használja az eseményközponthoz.
mvn clean package -DskipTests
A létrehozási folyamat több percet is igénybe vehet. Mielőtt folytatná győződjön meg róla, hogy megjelent az [INFO] BUILD SUCCESS (Sikeres létrehozás) üzenet.
A küldő- és fogadó alkalmazás indítása
Futtassa a Java-alkalmazást a parancssorból a következő
java
parancs futtatásával és egy .jar-csomag megadásával. A következő parancsokat használja a SimpleSend alkalmazás elindításához.cd ~/azure-event-hubs/samples/Java/Basic/SimpleSend java -jar ./target/simplesend-1.0.0-jar-with-dependencies.jar
Amikor megjelenik a Küldés befejezve... üzenet, nyomja le az Enter billentyűt.
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...
Indítsa el az EventProcessorSample alkalmazást az alábbi parancs futtatásával.
cd ~/azure-event-hubs/samples/Java/Basic/EventProcessorSample java -jar ./target/eventprocessorsample-1.0.0-jar-with-dependencies.jar
Ha az üzenetek nem jelennek meg a konzolon, nyomja le az Enter billentyűt, vagy nyomja le a CTRL+C billentyűkombinációt a program befejezéséhez.
... 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
Összesítés
Ebben a leckében konfigurált egy küldőalkalmazást, amely készen áll arra, hogy üzeneteket küldjön az eseményközpontba. Konfigurált egy fogadóalkalmazást is, amely készen áll arra, hogy üzeneteket fogadjon az eseményközpontból.