Asas Apache Kafka & Pemprosesan Aliran · Pelajaran

Kunci Mesej dan Strategi Pembahagian

Pelajari cara Kafka menggunakan kunci mesej untuk menghalakan rekod ke partition, cara pendekatan ini menjamin susunan serta cara mereka bentuk kunci dan pemisah partition tersuai.

Pelajaran 4 daripada 413 langkah

Kunci Mesej dan Strategi Pembahagian ialah pelajaran Asas Apache Kafka & Pemprosesan Aliran percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Asas Apache Kafka & Pemprosesan Aliran, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Asas Apache Kafka & Pemprosesan Aliran merangkumi sejumlah 4 pelajaran.

Peranan Kunci

Setiap rekod Kafka boleh membawa kunci pilihan. Kunci bukan sekadar data — kunci menentukan partisi tempat rekod ditulis.

Pembahagi Lalai

Apabila kunci tersedia, pembahagi lalai mencincangnya dan memetakan cincangan itu kepada satu partisi. Kunci yang sama sentiasa berada dalam partisi yang sama, bagi bilangan partisi yang tetap.

partition = hash(key) % numPartitions

Tingkah Laku Tanpa Kunci

Jika anda menghantar rekod tanpa kunci, pengeluar mengagihkannya merentas partisi, iaitu melalui pengelompokan melekat dalam klien moden, untuk mengimbangi beban — tetapi susunan merentas partisi tidak dijamin.

Jaminan Susunan

Kafka menjamin susunan hanya dalam sesuatu partisi. Dengan memberikan kunci kepada rekod berkaitan, contohnya semua peristiwa untuk satu id pesanan, anda menjamin rekod tersebut diproses mengikut susunan.

send("orders", orderId, event);  // all events for an order stay ordered

Memilih Kunci yang Baik

Kunci yang baik mencerminkan keperluan susunan dan pengumpulan anda.

  • Peristiwa pengguna diberikan kunci userId.
  • Peristiwa pesanan diberikan kunci orderId.
  • Elakkan kunci dengan terlalu sedikit nilai berbeza kerana ini menyebabkan partisi sesak.

Partisi Sesak

Jika satu nilai kunci mendominasi trafik, partisinya menjadi tumpuan beban sementara partisi lain tidak digunakan. Pantau kardinaliti dan taburan kunci untuk memastikan beban seimbang.

Pemberian Kunci dalam Spring Boot

Hantar kunci sebagai argumen kedua kepada send; Spring meneruskannya kepada pembahagi.

kafkaTemplate.send("orders", order.getId(), payload);

Pembahagi Tersuai

Untuk logik penghalaan khas, laksanakan antara muka Partitioner dan gantikan partition().

public int partition(String topic, Object key, byte[] keyBytes,
        Object value, byte[] valueBytes, Cluster cluster) {
    return isVip(key) ? 0 : 1 + (Math.abs(key.hashCode()) % (n - 1));
}

Mendaftarkan Pembahagi

Beritahu pengeluar supaya menggunakan kelas anda melalui konfigurasi.

spring:
  kafka:
    producer:
      properties:
        partitioner.class: com.example.VipPartitioner

Bilangan Partisi dan Kunci

Menukar bilangan partisi mengubah hash % numPartitions, jadi kunci sedia ada mungkin berpindah ke partisi baharu dan menjejaskan pengurutan. Pilih bilangan partisi dengan teliti sejak awal.

Menggabungkan Semuanya

Kunci ialah penghubung antara data dengan partisi. Kunci memberikan pengurutan mengikut kunci, menentukan pengagihan beban, dan boleh disesuaikan dengan pemarti untuk penghalaan lanjutan.

Semakan Pantas

Uji pemahaman anda tentang kunci dan pemartisan.

Imbas Kembali

Anda telah mempelajari kunci mesej dan pemartisan.

  • Kunci menentukan partisi sasaran melalui pencincangan.
  • Kunci yang sama, partisi yang sama, pemprosesan yang teratur.
  • Kunci dengan kardinaliti rendah menyebabkan partisi sibuk.
  • Partitioner tersuai membolehkan penghalaan lanjutan.
Percuma untuk bermula

Pelajari Asas Apache Kafka & Pemprosesan Aliran dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
12
Pelajaran
48

Soalan Lazim

Adakah pelajaran “Kunci Mesej dan Strategi Pembahagian” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Asas Apache Kafka & Pemprosesan Aliran, termasuk “Kunci Mesej dan Strategi Pembahagian”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Asas Apache Kafka & Pemprosesan Aliran merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Kunci Mesej dan Strategi Pembahagian”?

Pelajari cara Kafka menggunakan kunci mesej untuk menghalakan rekod ke partition, cara pendekatan ini menjamin susunan serta cara mereka bentuk kunci dan pemisah partition tersuai. Anda berlatih Asas Apache Kafka & Pemprosesan Aliran menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Asas Apache Kafka & Pemprosesan Aliran?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Asas Apache Kafka & Pemprosesan Aliran di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “Kunci Mesej dan Strategi Pembahagian” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Asas Apache Kafka & Pemprosesan Aliran ini?

Ya. Setiap pelajaran Asas Apache Kafka & Pemprosesan Aliran menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Menghasilkan Mesej ke Kafka
  2. Menggunakan Mesej daripada Kafka
  3. Memahami Partisyen dan Offset
  4. Kunci Mesej dan Strategi Pembahagian
← Kembali ke Asas Apache Kafka & Pemprosesan Aliran