Bagikan melalui


Memigrasikan beban kerja Apache Kafka ke Azure HDInsight 4.0

Azure HDInsight 4.0 menawarkan komponen sumber terbuka terbaru dengan peningkatan performa, konektivitas, dan keamanan yang signifikan. Dokumen ini menjelaskan cara memigrasikan beban kerja Apache Kafka pada HDInsight 3.6 ke HDInsight 4.0. Setelah memigrasikan beban kerja Anda ke HDInsight 4.0, Anda dapat menggunakan banyak fitur baru yang tidak tersedia di HDInsight 3.6.

Jalur migrasi HDInsight 3.6 Kafka

HDInsight 3.6 mendukung dua versi Kafka: 1.0.0 dan 1.1.0. HDInsight 4.0 mendukung versi 1.1.0 dan 2.1.0. Bergantung pada versi Kafka dan versi HDInsight mana yang ingin Anda jalankan, ada beberapa jalur migrasi yang didukung. Jalur ini dijelaskan di bawah ini dan diilustrasikan dalam diagram berikut.

  • Jalankan Kafka dan HDInsight pada versi terbaru (disarankan): Migrasikan aplikasi HDInsight 3.6 dan Kafka 1.0.0 atau 1.1.0 ke HDInsight 4.0 dengan Kafka 2.1.0 (jalur D dan E di bawah).
  • Jalankan HDInsight pada versi terbaru, tetapi Kafka hanya pada versi yang lebih baru: Memigrasikan aplikasi HDInsight 3.6 dan Kafka 1.0.0 ke HDInsight 4.0 dengan Kafka 1.1.0 (jalur B di bawah).
  • Jalankan HDInsight pada versi terbaru, pertahankan versi Kafka: Migrasikan aplikasi HDInsight 3.6 dan Kafka 1.1.0 ke HDInsight 4.0 dengan Kafka 1.1.0 (jalur C di bawah).
  • Jalankan Kafka pada versi yang lebih baru, pertahankan versi HDInsight: Migrasikan aplikasi Kafka 1.0.0 ke 1.1.0 dan tetap di HDInsight 3.6 (jalur A di bawah). Perhatikan bahwa opsi ini masih memerlukan penyebaran kluster baru. Meningkatkan versi Kafka pada kluster yang ada tidak didukung. Setelah Anda membuat kluster dengan versi yang Anda inginkan, migrasikan klien Kafka Anda untuk menggunakan kluster baru.

Tingkatkan jalur untuk Apache Kafka pada 3.6.

Versi Apache Kafka

Kafka 1.1.0

Jika Anda bermigrasi dari Kafka 1.0.0 ke 1.1.0, Anda dapat memanfaatkan fitur baru berikut:

  • Peningkatan pada pengontrol Kafka mempercepat penghentian terkontrol, sehingga Anda dapat memulai ulang broker dan memulihkan masalah lebih cepat.
  • Peningkatan dalam logika FetchRequests yang memungkinkan Anda memiliki lebih banyak partisi (dan karenanya lebih banyak topik) pada kluster.
  • Kafka Connect mendukung header catatan dan ekspresi reguler untuk topik.

Untuk daftar lengkap pembaruan, lihat Catatan rilis Apache Kafka 1.1.

Apache Kafka 2.1.0

Jika Anda bermigrasi ke Kafka 2.1, Anda dapat memanfaatkan fitur-fitur berikut:

  • Ketahanan broker yang lebih baik karena protokol replikasi yang ditingkatkan.
  • Fungsionalitas baru di KafkaAdminClient API.
  • Manajemen kuota yang dapat dikonfigurasi.
  • Dukungan untuk kompresi Zstandard.

Untuk daftar lengkap pembaruan, lihat Catatan rilis Apache Kafka 2.0 dan catatan rilis Apache Kafka 2.1.

Kompatibilitas klien Kafka

Broker Kafka baru mendukung klien yang lebih lama. KIP-35 - Mengambil versi protokol memperkenalkan mekanisme untuk secara dinamis menentukan fungsionalitas broker Kafka dan KIP-97: Peningkatan Kebijakan Kompatibilitas RPC Klien Kafka memperkenalkan kebijakan kompatibilitas baru serta jaminan untuk klien Java. Sebelumnya, klien Kafka harus berinteraksi dengan broker dengan versi yang sama atau versi yang lebih baru. Sekarang, versi klien Java yang lebih baru dan klien lain yang mendukung KIP-35 seperti librdkafka dapat kembali ke jenis permintaan yang lebih lama atau melemparkan kesalahan yang sesuai jika fungsionalitas tidak tersedia.

Tingkatkan kompatibilitas klien Kafka.

Perhatikan bahwa bukan berarti klien mendukung broker versi lama. Untuk informasi selengkapnya, lihat Matriks Kompatibilitas.

Proses migrasi umum

Panduan migrasi berikut mengasumsikan kluster Apache Kafka 1.0.0 atau 1.1.0 yang disebarkan pada HDInsight 3.6 dalam satu jaringan virtual. Broker yang ada memiliki beberapa topik dan sedang digunakan secara aktif oleh produsen dan konsumen.

Lingkungan Kafka yang diduga saat ini.

Untuk menyelesaikan migrasi, lakukan langkah-langkah berikut:

  1. Sebarkan kluster hdInsight 4.0 dan klien baru untuk pengujian. Sebarkan kluster HdInsight 4.0 Kafka baru. Jika beberapa versi kluster Kafka dapat dipilih, disarankan untuk memilih versi terbaru. Setelah penyebaran, atur beberapa parameter sesuai kebutuhan dan buat topik dengan nama yang sama dengan lingkungan Anda yang ada. Selain itu, atur enkripsi TLS dan bring-your-own-key (BYOK) sesuai kebutuhan. Kemudian periksa apakah berfungsi dengan benar dengan kluster baru.

    Sebarkan kluster HDInsight 4.0 baru.

  2. Ubah kluster untuk aplikasi produsen, dan tunggu hingga semua data pada antrean telah dikonsumsi oleh konsumen yang ada saat ini. Ketika kluster HDInsight 4.0 Kafka baru siap, alihkan tujuan produsen yang ada ke kluster baru. Biarkan apa adanya sampai aplikasi Konsumen yang ada telah mengonsumsi semua data dari kluster yang ada.

    Beralih klaster untuk aplikasi produksi.

  3. Alihkan kluster pada aplikasi pengguna. Setelah mengonfirmasi bahwa aplikasi konsumen yang ada telah selesai mengonsumsi semua data dari kluster yang ada, alihkan koneksi ke kluster baru.

    Ganti kluster di aplikasi konsumen.

  4. Hapus kluster lama dan uji aplikasi sesuai kebutuhan. Setelah sakelar selesai dan berfungsi dengan baik, hapus kluster HDInsight 3.6 Kafka lama serta produsen dan konsumen yang digunakan dalam pengujian jika diperlukan.

Langkah berikutnya