Mereplikasi data dari kluster Kafka ke Azure Event Hubs menggunakan Apache Kafka Mirror Maker 2
Tutorial ini menunjukkan cara mereplikasi data dari kluster Kafka yang ada ke Azure Event Hubs menggunakan Mirror Maker 2.
Catatan
Sampel ini tersedia di GitHub
Dalam tutorial ini, Anda akan mempelajari cara:
- Membuat namespace layanan Azure Event Hubs
- Menyiapkan atau menggunakan kluster Kafka yang ada
- Mengonfigurasi Kafka Mirror Maker 2
- Jalankan Kafka Mirror Maker 2
Pengantar
Apache Kafka MirrorMaker 2.0 (MM2) dirancang untuk membuatnya lebih mudah untuk mencerminkan atau mereplikasi topik dari satu kluster Kafka ke kluster lainnya. Mirror Maker menggunakan kerangka kerja Kafka Connect untuk menyederhanakan konfigurasi dan penskalaan. Untuk informasi lebih rinci tentang Kafka MirrorMaker, lihat panduan Kafka Mirroring/MirrorMaker.
Karena Azure Event Hubs kompatibel dengan protokol Apache Kafka, Anda dapat menggunakan Mirror Maker 2 untuk mereplikasi data antara kluster Kafka yang ada dan namespace layanan Azure Event Hubs.
Mirror Maker 2 secara dinamis mendeteksi perubahan pada topik dan memastikan properti topik sumber dan target disinkronkan, termasuk offset dan partisi. Ini dapat digunakan untuk mereplikasi data dua arah antara kluster Kafka dan namespace layanan Azure Event Hubs.
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.
- Di Ubuntu, jalankan
-
Unduh dan pasang arsip biner Maven
- Di Ubuntu, Anda dapat menjalankan
apt-get install maven
untuk memasang Maven.
- Di Ubuntu, Anda dapat menjalankan
-
Git
- Di Ubuntu, Anda dapat menjalankan
sudo apt-get install git
untuk memasang Git.
- Di Ubuntu, Anda dapat menjalankan
-
Distribusi Apache Kafka
- Unduh distribusi Apache Kafka pilihan (yang harus berisi distribusi Mirror Maker 2.)
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-2
subfolder:
git clone https://github.com/Azure/azure-event-hubs-for-kafka.git
cd azure-event-hubs-for-kafka/tutorials/mirror-maker-2
Menyiapkan atau menggunakan kluster Kafka yang ada
Jika Anda tidak memiliki kluster Kafka yang ada, gunakan panduan mulai cepat Kafka untuk menyiapkan kluster Kafka dengan pengaturan yang diinginkan (atau gunakan kluster Kafka yang ada). Untuk tujuan pengujian, Anda juga dapat membuat beberapa topik di kluster Kafka yang baru dibuat dan menerbitkan data kepada mereka.
Jika Anda sudah memiliki kluster Kafka lokal atau di layanan cloud Kafka terkelola, maka Anda dapat menggunakannya untuk mereplikasi data yang ada ke Azure Event Hubs.
Mengonfigurasi Kafka Mirror Maker 2
Distribusi Apache Kafka dilengkapi dengan connect-mirror-maker.sh
skrip yang dibundel dengan pustaka Kafka yang mengimplementasikan kluster Mirror Maker 2 terdistribusi. Ini mengelola Connect workers secara internal berdasarkan file konfigurasi. Driver MirrorMaker secara internal membuat dan menangani pasangan setiap konektor – Konektor MirrorSource, Konektor MirrorSink, Konektor MirrorCheckpoint , dan Konektor MirrorHeartbeat.
Untuk mengonfigurasi Mirror Maker 2 untuk mereplikasi data, Anda perlu memperbarui file
kafka-to-eh-connect-mirror-maker.properties
konfigurasi Mirror Maker 2 untuk menentukan topologi replikasi.kafka-to-eh-connect-mirror-maker.properties
Dalam file konfigurasi, tentukan alias kluster yang Anda rencanakan untuk digunakan untuk kluster Kafka (sumber) dan Azure Event Hubs (tujuan).# cluster aliases clusters = source, destination
Kemudian tentukan informasi koneksi untuk sumber Anda, yang merupakan kluster Kafka Anda.
source.bootstrap.servers = your-kafka-cluster-hostname:9092 #source.security.protocol=SASL_SSL #source.sasl.mechanism=PLAIN #source.sasl.jaas.config=<replace sasl jaas config of your Kafka cluster>;
Tentukan informasi koneksi untuk tujuan, yang merupakan namespace layanan Azure Event Hubs yang Anda buat.
destination.bootstrap.servers = <your-enventhubs-namespace>.servicebus.windows.net:9093 destination.security.protocol=SASL_SSL destination.sasl.mechanism=PLAIN destination.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username='$ConnectionString' password='<Your Event Hubs namespace connection string.>';
Aktifkan alur replikasi dari kluster Kafka sumber ke namespace layanan Azure Event Hubs tujuan.
source->destination.enabled = true source->destination.topics = .*
Perbarui faktor replikasi topik jarak jauh dan topik internal yang dibuat Mirror Maker di tujuan.
replication.factor=3 checkpoints.topic.replication.factor=3 heartbeats.topic.replication.factor=3 offset-syncs.topic.replication.factor=3 offset.storage.replication.factor=3 status.storage.replication.factor=3 config.storage.replication.factor=3
Kemudian Anda menyalin
kafka-to-eh-connect-mirror-maker.properties
file konfigurasi ke direktori konfigurasi distribusi Kafka dan dapat menjalankan skrip Mirror Maker 2 menggunakan perintah berikut../bin/connect-mirror-maker.sh ./config/kafka-to-eh-connect-mirror-maker.properties
Setelah eksekusi skrip berhasil, Anda akan melihat topik dan peristiwa Kafka direplikasi ke namespace Layanan Pusat Aktivitas Anda.
Untuk memverifikasi bahwa peristiwa berhasil masuk ke Azure Event Hubs yang mendukung Kafka, lihat statistik ingress di portal Azure, atau jalankan konsumen terhadap Azure Event Hubs.
Sampel
Lihat sampel berikut di GitHub:
Jika Anda menghosting Apache Kafka di Kubernetes menggunakan operator CNCF Strimzi, Anda dapat menggunakan sampel Strimzi Mirror Maker 2 untuk Azure Event Hubs.
Langkah berikutnya
Untuk mempelajari selengkapnya tentang Event Hubs for Kafka, lihat artikel berikut ini: