Az Azure Cosmos DB for NoSQL-t és a változáscsatorna-feldolgozót használó Java-alkalmazás létrehozása
A KÖVETKEZŐRE VONATKOZIK: NoSQL
Az Azure Cosmos DB a Microsoft által biztosított, teljes körűen felügyelt NoSQL-adatbázis-szolgáltatás. Lehetővé teszi a globálisan elosztott és nagy mértékben skálázható alkalmazások könnyű létrehozását. Ez az útmutató végigvezeti egy Olyan Java-alkalmazás létrehozásának folyamatán, amely az Azure Cosmos DB for NoSQL-adatbázist használja, és valós idejű adatfeldolgozáshoz implementálja a változáscsatorna-feldolgozót. A Java-alkalmazás az Azure Cosmos DB for NoSQL-vel kommunikál az Azure Cosmos DB Java SDK 4-ben.
Fontos
Ez az oktatóanyag csak az Azure Cosmos DB Java SDK v4-hez készült. További információért tekintse meg az Azure Cosmos DB Java SDK v4 kiadási megjegyzéseit, a Maven-adattárat, az Azure Cosmos DB változáscsatorna-feldolgozóját és az Azure Cosmos DB Java SDK v4 hibaelhárítási útmutatóját . Ha jelenleg a v4-es verziónál régebbi verziót használ, a v4-re való frissítésről a Migrálás az Azure Cosmos DB Java SDK v4-es verziójára című útmutatóban olvashat.
Előfeltételek
Azure Cosmos DB-fiók: létrehozhatja az Azure Portalról , vagy használhatja az Azure Cosmos DB Emulatort is.
Java fejlesztői környezet: Győződjön meg arról, hogy legalább 8 verziójú Java Development Kit (JDK) van telepítve a gépen.
Azure Cosmos DB Java SDK V4: biztosítja az Azure Cosmos DB használatához szükséges funkciókat.
Háttér
Az Azure Cosmos DB változáscsatornája egy eseményvezérelt felületet biztosít a műveletek aktiválásához a sok felhasználású dokumentumbeszúrásra válaszul.
A változáscsatorna-események kezelését nagyrészt az SDK-ba beépített változáscsatorna feldolgozói kódtára végzi. Ez a kódtár elég hatékony a változáscsatorna-események több feldolgozó között való elosztásához, ha ez szükséges. Mindössze annyit kell tennie, hogy visszahívja a változáscsatorna-kódtárat.
Ez az egyszerű Java-alkalmazás az Azure Cosmos DB-vel és a változáscsatorna-feldolgozóval való valós idejű adatfeldolgozást mutatja be. Az alkalmazás mintadokumentumokat szúr be egy "adatcsatorna-tárolóba" egy adatfolyam szimulálásához. A változáscsatorna feldolgozója, amely a hírcsatornatárolóhoz van kötve, feldolgozza a bejövő módosításokat, és naplózza a dokumentum tartalmát. A processzor automatikusan kezeli a párhuzamos feldolgozás bérleteit.
Forráskód
Klónozhatja az SDK-példa-adattárat, és a következő helyen találhatja meg ezt a SampleChangeFeedProcessor.java
példát:
git clone https://github.com/Azure-Samples/azure-cosmos-java-sql-api-samples.git
cd azure-cosmos-java-sql-api-sample/src/main/java/com/azure/cosmos/examples/changefeed/
Útmutatás
Konfigurálja a Java-alkalmazásokban az
ChangeFeedProcessorOptions
Azure Cosmos DB és az Azure Cosmos DB Java SDK V4 használatával. EzChangeFeedProcessorOptions
alapvető beállításokat biztosít a változáscsatorna-feldolgozó viselkedésének szabályozásához az adatfeldolgozás során.options = new ChangeFeedProcessorOptions(); options.setStartFromBeginning(false); options.setLeasePrefix("myChangeFeedDeploymentUnit"); options.setFeedPollDelay(Duration.ofSeconds(5)); options.setFeedPollThroughputControlConfig(throughputControlGroupConfig);
Inicializálja a ChangeFeedProcessort a megfelelő konfigurációkkal, beleértve a gazdagép nevét, a hírcsatornatárolót, a bérlettárolót és az adatkezelési logikát. A start() metódus elindítja az adatfeldolgozást, lehetővé téve a bejövő adatváltozások egyidejű és valós idejű feldolgozását a hírcsatornatárolóból.
logger.info("Start Change Feed Processor on worker (handles changes asynchronously)"); ChangeFeedProcessor changeFeedProcessorInstance = new ChangeFeedProcessorBuilder() .hostName("SampleHost_1") .feedContainer(feedContainer) .leaseContainer(leaseContainer) .handleChanges(handleChanges()) .options(options) .buildChangeFeedProcessor(); changeFeedProcessorInstance.start() .subscribeOn(Schedulers.boundedElastic()) .subscribe();
Adja meg, hogy a delegált a metódussal kezelje a
handleChanges()
bejövő adatváltozásokat. A metódus feldolgozza a fogadott JsonNode-dokumentumokat a változáscsatornából. Fejlesztőként két lehetősége van a Változáscsatorna által biztosított JsonNode-dokumentum kezelésére. Az egyik lehetőség a dokumentum JsonNode-fájl formájában történő működtetése. Ez különösen akkor hasznos, ha nem rendelkezik egyetlen egységes adatmodellel az összes dokumentumhoz. A második lehetőség - átalakítja a JsonNode-t egy olyan POJO-vá, amelynek szerkezete megegyezik a JsonNode szerkezetével. Ezután a POJO-n is működhet.private static Consumer<List<JsonNode>> handleChanges() { return (List<JsonNode> docs) -> { logger.info("Start handleChanges()"); for (JsonNode document : docs) { try { //Change Feed hands the document to you in the form of a JsonNode //As a developer you have two options for handling the JsonNode document provided to you by Change Feed //One option is to operate on the document in the form of a JsonNode, as shown below. This is great //especially if you do not have a single uniform data model for all documents. logger.info("Document received: " + OBJECT_MAPPER.writerWithDefaultPrettyPrinter() .writeValueAsString(document)); //You can also transform the JsonNode to a POJO having the same structure as the JsonNode, //as shown below. Then you can operate on the POJO. CustomPOJO2 pojo_doc = OBJECT_MAPPER.treeToValue(document, CustomPOJO2.class); logger.info("id: " + pojo_doc.getId()); } catch (JsonProcessingException e) { e.printStackTrace(); } } isWorkCompleted = true; logger.info("End handleChanges()"); }; }
Hozza létre és futtassa a Java-alkalmazást. Az alkalmazás elindítja a Változáscsatorna-feldolgozót, mintadokumentumokat szúr be a hírcsatornatárolóba, és feldolgozzák a bejövő módosításokat.
Összegzés
Ebben az útmutatóban megtanulta, hogyan hozhat létre Java-alkalmazást az Azure Cosmos DB Java SDK V4 használatával, amely az Azure Cosmos DB for NoSQL-adatbázist használja, és a változáscsatorna-feldolgozót használja valós idejű adatfeldolgozáshoz. Ezt az alkalmazást kiterjesztheti az összetettebb használati esetek kezelésére, és robusztus, méretezhető és globálisan elosztott alkalmazásokat hozhat létre az Azure Cosmos DB használatával.
További erőforrások
Következő lépések
A változáscsatorna-becslésről az alábbi cikkekben olvashat bővebben: