Asas Apache Kafka & Pemprosesan Aliran · Pelajaran

Memahami Partisyen dan Offset

Fahami kepentingan partisyen untuk kebolehskalaan dan pemprosesan selari, serta cara offset menjejaki kemajuan pengguna.

Pelajaran 3 daripada 410 langkah

Memahami Partisyen dan Offset ialah pelajaran Asas Apache Kafka & Pemprosesan Aliran percuma di CoddyKit. Ini ialah pelajaran 3 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.

Apakah Partition Kafka?

Bayangkan topic Kafka sebagai kategori untuk mesej. Untuk mengendalikan banyak mesej dengan cekap, Kafka membahagikan topic kepada segmen lebih kecil dan tersusun yang dipanggil partition.

Anggap setiap partition sebagai log mini yang tersendiri. Mesej ditambahkan pada hujung partition mengikut urutan ketibaannya. Setelah ditulis, mesej dalam partition tidak boleh diubah.

Partition: Tersusun dan Tidak Berubah

Amat penting untuk difahami bahawa walaupun mesej dalam satu partition disusun dengan ketat, tiada susunan yang dijamin merentas partition yang berbeza bagi topic yang sama.

  • Tersusun: Mesej dalam satu partition sentiasa mempunyai urutan yang jelas.
  • Tidak berubah: Setelah mesej ditulis ke partition, mesej itu tidak boleh diubah.
  • Tambah sahaja: Mesej baharu sentiasa ditambahkan pada hujung.

Kebolehskalaan melalui Partition

Partition ialah tunjang kebolehskalaan dan pemprosesan selari Kafka. Inilah sebabnya partition penting:

  • Pemprosesan Selari: Beberapa pengguna boleh membaca daripada partition yang berbeza bagi topic yang sama secara serentak.
  • Storan Teragih: Partition boleh disebarkan merentas broker Kafka (pelayan) yang berbeza dalam satu kelompok. Hal ini membolehkan topic mengendalikan lebih banyak data daripada yang mampu dikendalikan oleh satu pelayan.

Cara Mesej Ditugaskan

Apabila pengeluar menghantar mesej, Kafka perlu menentukan partition yang akan menerima mesej tersebut. Ini dipanggil strategi pembahagian partition:

  • Dengan key: Jika mesej mengandungi key (contohnya, ID pengguna), Kafka menggunakan cincangan key tersebut untuk menetapkannya secara konsisten kepada partition yang sama. Hal ini memastikan semua mesej bagi key tertentu diproses mengikut urutan.
  • Tanpa key: Jika tiada key diberikan, Kafka biasanya menggunakan pendekatan giliran berulang, iaitu mengagihkan mesej secara sama rata merentas semua partition.

Pengeluar dengan Kunci Mesej

Contoh Java ini menunjukkan cara pengeluar menghantar mesej kepada topic dengan menyediakan key secara jelas. Mesej dengan key yang sama akan berada dalam partition yang sama.

import java.util.Properties;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;

public class KeyedProducer {
  public static void main(String[] args) {
    Properties props = new Properties();
    props.put("bootstrap.servers", "localhost:9092");
    props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
    props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");

    try (KafkaProducer<String, String> producer = new KafkaProducer<>(props)) {
      String topic = "my_keyed_topic";
      for (int i = 0; i < 4; i++) {
        String key = "user-" + (i % 2); // user-0, user-1, user-0, user-1
        String value = "Message " + i + " for " + key;
        producer.send(new ProducerRecord<>(topic, key, value));
        System.out.println("Sent: Key=" + key + ", Value=" + value);
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

Memperkenalkan Offset Mesej

Setiap mesej dalam partition Kafka mempunyai pengecam unik berjujukan yang dipanggil offset. Anggaplah ia sebagai nombor indeks bagi mesej dalam partition tertentu itu.

  • Mesej pertama dalam partition mempunyai offset 0.
  • Mesej seterusnya mempunyai offset 1, dan seterusnya.
  • Offset adalah setempat bagi setiap partition.

Offset untuk Kemajuan Pengguna

Offset penting bagi pengguna untuk menjejaki kemajuan mereka. Pengguna menyimpan rekod offset mesej terakhir yang berjaya diprosesnya dalam setiap partition.

Hal ini membolehkan pengguna:

  • Menyambung pemprosesan tepat pada tempat terakhir jika pengguna berhenti atau ranap.
  • Mengetahui mesej yang masih perlu dibaca.

Mengesahkan Offset

Selepas memproses mesej, pengguna perlu memaklumkan kemajuan mereka kepada Kafka dengan mengesahkan offset. Ini bermaksud menyimpan offset semasa ke topic Kafka khas (__consumer_offsets).

Pengesahan boleh dilakukan secara:

  • Automatik: Kafka mengesahkan offset secara berkala di latar belakang.
  • Manual: Aplikasi memberitahu Kafka secara jelas bila offset perlu disahkan, lalu memberikan lebih banyak kawalan terhadap jaminan pemprosesan.

Semak Pemahaman Anda

Mari uji pengetahuan anda tentang partition dan offset Kafka.

Imbas Kembali: Partition dan Offset

Hari ini, kita meneroka dua konsep teras Kafka:

  • Partition: Segmen ini membahagikan topic, membolehkan pemprosesan selari, storan teragih dan mesej tersusun dalam setiap partition.
  • Offset: ID berjujukan ini menjejaki kedudukan mesej dalam partition, lalu membolehkan pengguna mengurus kemajuan mereka dengan tepat dan menyambung semula dengan boleh dipercayai.

Memahami konsep ini ialah kunci untuk membina aplikasi Kafka yang boleh diskalakan dan kukuh!

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 “Memahami Partisyen dan Offset” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Asas Apache Kafka & Pemprosesan Aliran, termasuk “Memahami Partisyen dan Offset”, 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 “Memahami Partisyen dan Offset”?

Fahami kepentingan partisyen untuk kebolehskalaan dan pemprosesan selari, serta cara offset menjejaki kemajuan pengguna. 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 3 daripada 4.

Berapa lamakah pelajaran “Memahami Partisyen dan Offset” 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