Jalur ini mengajarkan Apache Kafka secara bertahap, dimulai dari mental model log kejadian, kemudian producer, consumer, dan semantik pengiriman, sebelum masuk ke desain topic, skema data, pemrosesan stream, integrasi Kafka Connect, serta operasi cluster. Lingkungan contoh menggunakan Apache Kafka 4.x dalam mode KRaft dengan Java 17+ dan terminal, sehingga perintah pada setiap topik dapat dicoba pada cluster lokal satu broker. Setiap contoh kode yang dapat dieksekusi disertai keluaran asli hasil eksekusi.
Apache Kafka
Jalur tutorial Apache Kafka dari mental model log kejadian sampai operasi cluster dan proyek ujung ke ujung.
0/0 selesai
Modul pembuka: posisi log kejadian di antara antrean pesan dan basis data, kosakata inti, serta penyiapan broker lokal pertama.
- Apa itu Kafka?Log kejadian sebagai model data Kafka dibandingkan dengan antrean pesan tradisional dan basis data, beserta alasan modelnya penting.
- Konsep intiKosakata inti Kafka: topic, partisi, offset, broker, producer, dan consumer beserta hubungan antar istilahnya.
- Penyiapan lokalMengunduh Kafka, menjalankan broker tunggal mode KRaft, membuat topic pertama, dan mencoba producer serta consumer CLI.
Interaksi klien dengan broker: konfigurasi producer, key dan partisi, consumer group, pengelolaan offset, rebalancing, dan header pesan.
- Memproduksi pesanKonfigurasi dasar producer, alur send sampai batch terkirim, dan serialisasi nilai pesan pada klien Python.
- Key dan partisiHashing key dengan murmur2, jaminan pengurutan per partisi, dan strategi memilih key yang sehat.
- Consumer groupKoordinasi consumer group: distribusi partisi ke anggota, pembagian beban, dan identitas group.
- Offset dan commitStrategi commit offset, perintah seeking, reset offset, dan replay data dari awal log.
- RebalancingPemicu rebalancing, biaya pemutaran konsumsi, dan protokol kooperatif yang memangkas pekerjaan ulang.
- Header dan metadataHeader pesan untuk metadata tambahan, timestamp yang dipilih broker, dan hook interceptor pada producer.
Keputusan desain topic: jumlah partisi, retensi, log compaction, bentuk payload, dan pola pemisahan antar topic.
- Jumlah partisiMenetapkan jumlah partisi dari throughput dan paralelisme consumer beserta biaya mengubahnya di kemudian hari.
- RetensiRetensi berbasis waktu dan ukuran, konfigurasi dinamis lewat kafka-configs, dan cara membaca data lama.
- Log compactionLog compaction untuk menyimpan nilai terkini per key dan pola changelog pada topic terkompaksi.
- Desain pesanBentuk payload pesan, pemilihan key yang merata, dan standar envelope dengan metadata standar.
- Pola multi-topicRouting pesan ke beberapa topic, pemilihan antara topic per entitas dan topic bersama, serta pola tabel atas peristiwa.
Kontrak data lintas tim: alasan skema tercatat, alur Schema Registry, Avro, dan mode kompatibilitas evolusi skema.
- Mengapa skema pentingBiaya payload tanpa kontrak pada sistem lintas tim dan apa yang diselesaikan skema tercatat.
- Schema RegistryPeran Schema Registry, strategi subject, dan alur serialisasi dengan ID skema pada header pesan.
- Avro dalam praktikSkema Avro: record, union, dan nilai default beserta serialisasi klien terhadap Registry.
- Mode kompatibilitasKompatibilitas backward, forward, dan full beserta contoh evolusi skema yang lolos dan yang ditolak.
Keandalan pengiriman: replikasi dan ISR, ketahanan producer, semantik pengiriman, transaksi, dan pemantauan consumer lag.
- ReplikasiLeader, follower, ISR, dan peran min.insync.replicas dalam menjaga partisi tetap tersedia dan tahan fault.
- Ketahanan producerKonfigurasi acks, retries, dan enable.idempotence pada producer beserta trade-off ketahanannya.
- Semantik pengirimanAt-most-once, at-least-once, dan exactly-once beserta pengaturan klien yang menghasilkan masing-masing.
- TransaksiTransaksi producer untuk penulisan atomik multi-partisi dan pola consume-transform-produce.
- Consumer lagMengukur consumer lag lewat CLI dan klien, ambang peringatan, dan pola pikir backpressure.
Pemrosesan stream di dalam Kafka: model pustaka Kafka Streams, primitif transformasi, state store, dan windowing.
- Kafka StreamsModel pustaka Kafka Streams, topologi pemrosesan, dan posisinya dibandingkan pemroses eksternal seperti Flink dan Spark.
- Primitif streamOperasi stateless pada KStream: map, filter, flatMap, join, dan groupBy beserta semantiknya.
- State storeState store lokal dengan RocksDB, changelog topic, dan pemulihan state saat aplikasi restart.
- WindowingWindow tumbling, hopping, dan session pada agregasi stream beserta perilaku akhir window.
Integrasi ke luar dari Kafka: model connector Kafka Connect, connector umum, multi-cluster, dan peta ekosistem.
- Kafka ConnectModel connector source dan sink, worker standalone dan distributed, serta konfigurasi connector.
- Connector umumConnector JDBC, S3, dan Elasticsearch sebagai integrasi yang paling sering digunakan beserta karakternya.
- Multi-clusterMirrorMaker 2 untuk replikasi antar cluster, topologi active-passive dan active-active, serta terjemahan offsetnya.
- Peta ekosistemKsqlDB, Flink, Debezium, dan layanan terkelola cloud sebagai bagian peta ekosistem di sekitar Kafka.
Keterampilan operasional: internal cluster KRaft, pemantauan metrik kunci, perhitungan kapasitas, dan ikhtisar keamanan.
- Internal clusterPeran broker dan controller pada mode KRaft, metadata quorum, dan sebaran partisi antar broker.
- Inti pemantauanMetrik yang benar-benar dipantau: consumer lag, throughput, kesehatan ISR, dan JMX sebagai sumbernya.
- Dasar kapasitasPerhitungan diska, jaringan, dan bandwidth partisi untuk perencanaan kapasitas cluster.
- Ikhtisar keamananLapisan keamanan Kafka: autentikasi SASL, otorisasi ACL, dan enkripsi SSL dalam ikhtisar.
Proyek puncak jalur: pemilihan lingkup, arsitektur kejadian, implementasi klien andal, dan integrasi Streams dengan Connect.
- Pemilihan proyekMemilih dan membatasi lingkup proyek sistem berbasis kejadian yang menuntut consumer nyata.
- Arsitektur kejadianMenyusun peta topic, skema, dan kontrak pengiriman sebagai dokumen arsitektur proyek kejadian.
- Implementasi producer dan consumerImplementasi producer dan consumer yang bertipe, idempoten, dan sadar lag untuk proyek kejadian.
- Streams dan ConnectMenambahkan pemrosesan real-time Kafka Streams dan integrasi Kafka Connect ke dalam proyek.