Mereplikasi data dari kluster Kafka ke Azure Event Hubs menggunakan Apache Kafka Mirror Maker 1

Tutorial ini menunjukkan cara mencerminkan broker Kafka ke dalam Azure Event Hubs menggunakan Kafka Mirror Maker 1.

Kafka MirrorMaker dengan Azure Event Hubs

Catatan

Sampel ini tersedia di GitHub

Catatan

Artikel ini berisi referensi ke istilah yang tidak lagi digunakan Microsoft. Saat istilah tersebut dihapus dari perangkat lunak, kami akan menghapusnya dari artikel ini.

Dalam tutorial ini, Anda mempelajari cara:

  • Membuat namespace layanan Azure Event Hubs
  • Mengkloning proyek contoh
  • Siapkan cluster Kafka
  • Konfigurasikan Kafka MirrorMaker
  • Jalankan Kafka MirrorMaker

Pengantar

Tutorial ini menunjukkan bagaimana pusat aktivitas dan Kafka MirrorMaker dapat mengintegrasikan alur Kafka yang ada ke Azure dengan "mencerminkan" aliran input Kafka di layanan Event Hubs, yang memungkinkan integrasi aliran Apache Kafka menggunakan beberapa pola federasi.

Titik akhir Azure Event Hubs Kafka memungkinkan Anda menyambung ke Azure Event Hubs menggunakan protokol Kafka (yaitu, klien Kafka). Dengan melakukan sedikit perubahan pada aplikasi Kafka, Anda dapat terhubung ke Azure Event Hubs dan menikmati manfaat ekosistem Azure. Azure Event Hubs saat ini mendukung protokol Apache Kafka versi 1.0 dan yang lebih baru.

Anda dapat menggunakan MirrorMaker 1 Apache Kafka secara searah dari Apache Kafka ke Azure Event Hubs. MirrorMaker 2 dapat digunakan di kedua arah, tetapi MirrorCheckpointConnectordan MirrorHeartbeatConnector yang dapat dikonfigurasi di MirrorMaker 2 harus dikonfigurasi untuk mengarah ke broker Apache Kafka dan bukan ke Azure Event Hubs. Tutorial ini menunjukkan cara mengonfigurasikan MirrorMaker 1.

Prasyarat

Untuk menyelesaikan tutorial ini, pastikan Anda memiliki:

  • Baca artikel Azure Event Hubs untuk Apache Kafka.
  • Langganan Azure. Jika Anda tidak memilikinya,buat akun gratis sebelum Anda mulai.
  • Java Development Kit (JDK) 1.7+
    • Di Ubuntu, jalankan apt-get install default-jdk untuk menginstal JDK.
    • Pastikan untuk mengatur variabel lingkungan JAVA_HOME untuk mengarahkan ke folder tempat JDK dipasang.
  • Unduh dan pasang arsip biner Maven
    • Di Ubuntu, Anda dapat menjalankan apt-get install maven untuk memasang Maven.
  • Git
    • Di Ubuntu, Anda dapat menjalankan sudo apt-get install git untuk memasang Git.

Membuat namespace layanan Azure Event Hubs

Namespace layanan Azure Event Hubs diperlukan untuk mengirim dan menerima dari layanan Azure Event Hubs apa pun. Lihat Membuat pusat aktivitas untuk petunjuk membuat namespace layanan dan pusat aktivitas. Pastikan untuk menyalin string sambungan Azure Event Hubs untuk digunakan nanti.

Mengkloning proyek contoh

Sekarang setelah Anda memiliki string koneksi Azure Event Hubs, kloning Azure Event Hubs untuk repositori Kafka dan navigasi ke mirror-maker subfolder:

git clone https://github.com/Azure/azure-event-hubs-for-kafka.git
cd azure-event-hubs-for-kafka/tutorials/mirror-maker

Siapkan cluster Kafka

Gunakan panduan mulai cepat Kafka untuk mengatur kluster dengan pengaturan yang diinginkan (atau gunakan kluster Kafka yang ada).

Konfigurasikan Kafka MirrorMaker

Kafka MirrorMaker mengaktifkan "pencerminan" aliran. Mengingat sumber dan tujuan kluster Kafka, MirrorMaker memastikan setiap pesan yang dikirim ke kluster sumber diterima oleh kluster sumber dan tujuan. Contoh ini menunjukkan cara mencerminkan kluster Kafka sumber dengan pusat aktivitas tujuan. Skenario ini dapat digunakan untuk mengirim data dari alur Kafka yang ada ke Azure Event Hubs tanpa mengganggu alur data.

Untuk informasi lebih rinci tentang Kafka MirrorMaker, lihat panduan Kafka Mirroring/MirrorMaker.

Untuk mengonfigurasikan Kafka MirrorMaker, berikan kluster Kafka sebagai konsumen/sumbernya dan pusat aktivitas sebagai produsen/tujuannya.

Konfigurasi pelanggan

Perbarui file konfigurasi konsumen source-kafka.config, yang memberi tahu MirrorMaker properti dari kluster Kafka sumber.

source-kafka.config
bootstrap.servers={SOURCE.KAFKA.IP.ADDRESS1}:{SOURCE.KAFKA.PORT1},{SOURCE.KAFKA.IP.ADDRESS2}:{SOURCE.KAFKA.PORT2},etc
group.id=example-mirrormaker-group
exclude.internal.topics=true
client.id=mirror_maker_consumer

Konfigurasi produsen

Sekarang perbarui file konfigurasi produsen mirror-eventhub.config, yang memberi tahu MirrorMaker untuk mengirim data yang diduplikasi (atau "dicerminkan") ke layanan Azure Event Hubs. Secara khusus, ubah bootstrap.servers dan sasl.jaas.config untuk mengarahkan ke titik akhir Azure Event Hubs Kafka Anda. Layanan Azure Event Hubs memerlukan komunikasi aman (SASL), yang dicapai dengan mengatur tiga properti terakhir dalam konfigurasi berikut:

mirror-eventhub.config
bootstrap.servers={YOUR.EVENTHUBS.FQDN}:9093
client.id=mirror_maker_producer

#Required for Event Hubs
sasl.mechanism=PLAIN
security.protocol=SASL_SSL
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="{YOUR.EVENTHUBS.CONNECTION.STRING}";

Penting

Ganti {YOUR.EVENTHUBS.CONNECTION.STRING} dengan string koneksi ke ruang namespace layanan Azure Event Hubs Anda. Untuk instruksi tentang mendapatkan string sambungan, lihat Mendapatkan string sambungan Azure Event Hubs. Berikut adalah contoh konfigurasi: sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=XXXXXXXXXXXXXXXX";

Jalankan Kafka MirrorMaker

Jalankan skrip Kafka MirrorMaker dari direktori Kafka root menggunakan file konfigurasi yang baru diperbarui. Pastikan untuk menyalin file konfigurasi ke direktori Kafka root, atau perbarui jalur mereka dalam perintah berikut.

bin/kafka-mirror-maker.sh --consumer.config source-kafka.config --num.streams 1 --producer.config mirror-eventhub.config --whitelist=".*"

Untuk memverifikasi bahwa peristiwa mencapai pusat aktivitas, lihat statistik ingress di portal Microsoft Azure, atau jalankan konsumen terhadap pusat aktivitas.

Dengan MirrorMaker berjalan, setiap peristiwa yang dikirim ke kluster sumber Kafka diterima oleh kluster Kafka dan pusat aktivitas yang dicerminkan. Dengan menggunakan MirrorMaker dan titik akhir Azure Event Hubs Kafka, Anda dapat memigrasikan alur Kafka yang ada ke layanan Azure Event Hubs yang dikelola tanpa mengubah kluster yang ada atau mengganggu aliran data yang sedang berlangsung.

Sampel

Lihat sampel berikut di GitHub:

Langkah berikutnya

Untuk mempelajari selengkapnya tentang Azure Event Hubs untuk Kafka, lihat artikel berikut ini: