Cara membuat aplikasi Java yang menggunakan Azure Cosmos DB untuk NoSQL dan mengubah prosesor umpan

BERLAKU UNTUK: NoSQL

Azure Cosmos DB adalah layanan database NoSQL yang dikelola sepenuhnya yang disediakan oleh Microsoft. Ini memungkinkan Anda untuk membangun aplikasi yang didistribusikan secara global dan sangat dapat diskalakan dengan mudah. Panduan cara penggunaan ini memandu Anda melalui proses pembuatan aplikasi Java yang menggunakan database Azure Cosmos DB for NoSQL dan mengimplementasikan Prosesor Umpan Perubahan untuk pemrosesan data real time. Aplikasi Java berkomunikasi dengan Azure Cosmos DB untuk NoSQL menggunakan Azure Cosmos DB Java SDK v4.

Penting

Tutorial ini hanya untuk Azure Cosmos DB Java SDK v4. Silakan lihat catatan Rilis Azure Cosmos DB Java SDK v4, repositori Maven, Prosesor umpan perubahan di Azure Cosmos DB, dan panduan pemecahan masalah Azure Cosmos DB Java SDK v4 untuk informasi selengkapnya. Jika saat ini Anda menggunakan versi sebelum v4, lihat panduan Migrasi ke Azure Cosmos DB Java SDK v4 untuk bantuan melakukan peningkatan versi ke v4.

Prasyarat

  • Akun Azure Cosmos DB: Anda dapat membuatnya dari portal Azure atau Anda juga dapat menggunakan Emulator Azure Cosmos DB.

  • Java Development Environment: Pastikan Anda telah menginstal Java Development Kit (JDK) di komputer Anda dengan setidaknya 8 versi.

  • Azure Cosmos DB Java SDK V4: menyediakan fitur yang diperlukan untuk berinteraksi dengan Azure Cosmos DB.

Latar belakang

Umpan perubahan Azure Cosmos DB menyediakan antarmuka berbasis peristiwa untuk memicu tindakan sebagai respons terhadap penyisipan dokumen yang memiliki banyak kegunaan.

Pekerjaan pengelolaan peristiwa umpan perubahan sebagian besar diurus oleh pustaka Prosesor umpan perubahan yang dibangun ke dalam SDK. Pustaka ini cukup kuat untuk mendistribusikan peristiwa umpan perubahan di antara beberapa pekerja, jika diinginkan. Yang harus Anda lakukan adalah menyediakan panggilan balik bagi pustaka umpan perubahan.

Contoh sederhana aplikasi Java ini menunjukkan pemrosesan data real-time dengan Azure Cosmos DB dan Prosesor Umpan Perubahan. Aplikasi menyisipkan dokumen sampel ke dalam "kontainer umpan" untuk mensimulasikan aliran data. Prosesor Umpan Perubahan, terikat ke kontainer umpan, memproses perubahan masuk dan mencatat konten dokumen. Prosesor secara otomatis mengelola sewa untuk pemrosesan paralel.

Kode sumber

Anda dapat mengkloning repositori contoh SDK dan menemukan contoh ini di SampleChangeFeedProcessor.java:

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/

Walkthrough

  1. Konfigurasikan ChangeFeedProcessorOptions dalam aplikasi Java menggunakan Azure Cosmos DB dan Azure Cosmos DB Java SDK V4. ChangeFeedProcessorOptions menyediakan pengaturan penting untuk mengontrol perilaku Prosesor Umpan Perubahan selama pemrosesan data.

    options = new ChangeFeedProcessorOptions();
    options.setStartFromBeginning(false);
    options.setLeasePrefix("myChangeFeedDeploymentUnit");
    options.setFeedPollDelay(Duration.ofSeconds(5));
    
  2. Inisialisasi ChangeFeedProcessor dengan konfigurasi yang relevan, termasuk nama host, kontainer umpan, kontainer sewa, dan logika penanganan data. Metode start() memulai pemrosesan data, memungkinkan pemrosesan bersamaan dan real-time dari perubahan data masuk dari kontainer umpan.

    logger.info("Start Change Feed Processor on worker (handles changes asynchronously)");
    ChangeFeedProcessor changeFeedProcessorInstance = new ChangeFeedProcessorBuilder()
        .hostName("SampleHost_1")
        .feedContainer(feedContainer)
        .leaseContainer(leaseContainer)
        .handleChanges(handleChanges())
        .buildChangeFeedProcessor();
    changeFeedProcessorInstance.start()
                               .subscribeOn(Schedulers.boundedElastic())
                               .subscribe();
    
  3. Tentukan delegasi menangani perubahan data masuk menggunakan handleChanges() metode . Metode ini memproses dokumen JsonNode yang diterima dari Umpan Perubahan. Sebagai pengembang, Anda memiliki dua opsi untuk menangani dokumen JsonNode yang diberikan kepada Anda oleh Change Feed. Salah satu opsinya adalah mengoperasikan dokumen dalam bentuk JsonNode. Ini bagus terutama jika Anda tidak memiliki satu model data seragam untuk semua dokumen. Opsi kedua - ubah JsonNode menjadi POJO yang memiliki struktur yang sama dengan JsonNode. Kemudian Anda dapat beroperasi pada POJO.

    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()");
    
        };
    }
    
  4. Bangun dan jalankan aplikasi Java. Aplikasi memulai Prosesor Umpan Perubahan, menyisipkan dokumen sampel ke dalam kontainer umpan, dan memproses perubahan yang masuk.

Kesimpulan

Dalam panduan ini, Anda mempelajari cara membuat aplikasi Java menggunakan Azure Cosmos DB Java SDK V4 yang menggunakan azure Cosmos DB untuk database NoSQL dan menggunakan Prosesor Umpan Perubahan untuk pemrosesan data real time. Anda dapat memperluas aplikasi ini untuk menangani kasus penggunaan yang lebih kompleks dan membangun aplikasi yang kuat, dapat diskalakan, dan didistribusikan secara global menggunakan Azure Cosmos DB.

Sumber Daya Tambahan:

Langkah berikutnya

Sekarang Anda dapat melanjutkan untuk mempelajari selengkapnya tentang penaksir umpan perubahan di artikel berikut: