Bermigrasi ke Amazon Cluster MSK - Amazon Managed Streaming untuk Apache Kafka

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Bermigrasi ke Amazon Cluster MSK

Amazon MSK Replicator dapat digunakan untuk migrasi MSK cluster. Lihat Apa itu Amazon MSK Replicator?. Atau, Anda dapat menggunakan Apache MirrorMaker 2.0 untuk bermigrasi dari MSK non-cluster ke klaster AmazonMSK. Untuk contoh cara melakukannya, lihat Memigrasi kluster Apache Kafka lokal ke Amazon menggunakan. MSK MirrorMaker Untuk informasi tentang cara menggunakan MirrorMaker, lihat Mencerminkan data antar cluster dalam dokumentasi Apache Kafka. Kami merekomendasikan pengaturan MirrorMaker dalam konfigurasi yang sangat tersedia.

Garis besar langkah-langkah yang harus diikuti saat menggunakan MirrorMaker untuk bermigrasi ke klaster MSK
  1. Buat MSK klaster tujuan

  2. Mulai MirrorMaker dari EC2 instans Amazon di Amazon VPC yang sama dengan cluster tujuan.

  3. Periksa MirrorMaker lag.

  4. Setelah MirrorMaker mengejar ketinggalan, arahkan produsen dan konsumen ke cluster baru menggunakan broker bootstrap MSK cluster.

  5. Matikan MirrorMaker.

MirrorMaker 1.0 praktik terbaik

Daftar praktik terbaik ini berlaku untuk MirrorMaker 1.0.

  • Jalankan MirrorMaker di cluster tujuan. Dengan cara ini, jika masalah jaringan terjadi, pesan masih tersedia di cluster sumber. Jika Anda menjalankan MirrorMaker di cluster sumber dan peristiwa di-buffer di produser dan ada masalah jaringan, peristiwa mungkin hilang.

  • Jika enkripsi diperlukan dalam perjalanan, jalankan di cluster sumber.

  • Untuk konsumen, setel auto.commit.enabled=false

  • Untuk produsen, tetapkan

    • max.in.flight.requests.per.connection=1

    • retries=int.max_value

    • acks=semua

    • max.block.ms = Long.Max_Value

  • Untuk throughput produsen yang tinggi:

    • Menyangga pesan dan mengisi kumpulan pesan - tune buffer.memory, batch.size, linger.ms

    • Tune buffer soket - menerima.buffer.bytes, send.buffer.bytes

  • Untuk menghindari kehilangan data, matikan komit otomatis di sumbernya, sehingga MirrorMaker dapat mengontrol komit, yang biasanya dilakukan setelah menerima ack dari cluster tujuan. Jika produsen memiliki acks=all dan cluster tujuan memiliki min.insync.replicas yang disetel ke lebih dari 1, pesan disimpan di lebih dari satu broker di tujuan sebelum konsumen melakukan offset di sumbernya. MirrorMaker

  • Jika pesanan penting, Anda dapat mengatur percobaan ulang ke 0. Atau, untuk lingkungan produksi, setel koneksi dalam pesawat maksimal ke 1 untuk memastikan bahwa batch yang dikirim tidak dilakukan rusak jika batch gagal di tengah. Dengan cara ini, setiap batch yang dikirim akan dicoba lagi sampai batch berikutnya dikirim. Jika max.block.ms tidak disetel ke nilai maksimum, dan jika buffer produsen penuh, mungkin ada kehilangan data (tergantung pada beberapa pengaturan lainnya). Ini dapat memblokir dan menekan kembali konsumen.

  • Untuk throughput tinggi

    • Meningkatkan buffer.memory.

    • Tingkatkan ukuran batch.

    • Tune linger.ms untuk memungkinkan batch terisi. Ini juga memungkinkan kompresi yang lebih baik, penggunaan bandwidth jaringan yang lebih sedikit, dan lebih sedikit penyimpanan di cluster. Ini menghasilkan peningkatan retensi.

    • Monitor CPU dan penggunaan memori.

  • Untuk throughput konsumen yang tinggi

    • Tingkatkan jumlah utas/konsumen per MirrorMaker proses - num.streams.

    • Tingkatkan jumlah MirrorMaker proses di seluruh mesin terlebih dahulu sebelum meningkatkan thread untuk memungkinkan ketersediaan tinggi.

    • Tingkatkan jumlah MirrorMaker proses pertama pada mesin yang sama dan kemudian pada mesin yang berbeda (dengan ID grup yang sama).

    • Isolasi topik yang memiliki throughput sangat tinggi dan gunakan instance terpisah MirrorMaker .

  • Untuk manajemen dan konfigurasi

    • Gunakan AWS CloudFormation dan alat manajemen konfigurasi seperti Chef dan Ansible.

    • Gunakan EFS mount Amazon untuk menjaga semua file konfigurasi dapat diakses dari semua EC2 instans Amazon.

    • Gunakan wadah untuk memudahkan penskalaan dan pengelolaan MirrorMaker instance.

  • Biasanya, dibutuhkan lebih dari satu konsumen untuk memenuhi produsen. MirrorMaker Jadi, siapkan banyak konsumen. Pertama, atur pada mesin yang berbeda untuk memberikan ketersediaan tinggi. Kemudian, skala mesin individu hingga memiliki konsumen untuk setiap partisi, dengan konsumen didistribusikan secara merata di seluruh mesin.

  • Untuk konsumsi dan pengiriman throughput yang tinggi, setel buffer terima dan kirim karena defaultnya mungkin terlalu rendah. Untuk performa maksimal, pastikan jumlah total stream (num.streams) cocok dengan semua partisi topik yang MirrorMaker mencoba menyalin ke cluster tujuan.

Keuntungan dari MirrorMaker 2. *

  • Memanfaatkan kerangka kerja dan ekosistem Apache Kafka Connect.

  • Mendeteksi topik dan partisi baru.

  • Secara otomatis menyinkronkan konfigurasi topik antar cluster.

  • Mendukung pasangan cluster “aktif/aktif”, serta sejumlah cluster aktif.

  • Menyediakan metrik baru termasuk latensi end-to-end replikasi di beberapa pusat data dan cluster.

  • Memancarkan offset yang diperlukan untuk memigrasikan konsumen antar cluster dan menyediakan perkakas untuk terjemahan offset.

  • Mendukung file konfigurasi tingkat tinggi untuk menentukan beberapa cluster dan aliran replikasi di satu tempat, dibandingkan dengan properti produsen/konsumen tingkat rendah untuk setiap proses 1.*. MirrorMaker