Apache Kafka & Stream Processing Fundamentals · Pelajaran

Serdes dan Serialisasi Data di Kafka Streams

Pelajari cara Kafka Streams menggunakan Serdes untuk melakukan serialisasi dan deserialisasi kunci serta nilai, serta cara mengonfigurasi Serdes bawaan dan per operasi.

Pelajaran 4 dari 413 langkah

Serdes dan Serialisasi Data di Kafka Streams adalah pelajaran Apache Kafka & Stream Processing Fundamentals gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Apache Kafka & Stream Processing Fundamentals, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Apache Kafka & Stream Processing Fundamentals mencakup 4 pelajaran total.

Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.

What Is a Serde?

A Serde is a combined Serializer and Deserializer. Kafka Streams uses it to convert between your Java objects and the bytes stored in Kafka.

Every key and value flowing through a topology needs a Serde.

Why Streams Needs Serdes Everywhere

Unlike a plain consumer, Kafka Streams writes intermediate results back to Kafka (for repartitioning and state).

So it must know how to serialize data not just on input/output, but at every shuffle and store — hence Serdes appear throughout the API.

Built-in Serdes

The Serdes factory class provides ready-made Serdes for common types.

Serde<String> stringSerde = Serdes.String();
Serde<Long> longSerde = Serdes.Long();
Serde<byte[]> bytesSerde = Serdes.ByteArray();

Default Serdes

You can set default key and value Serdes in the Streams config so you don't repeat them everywhere.

Properties props = new Properties();
props.put(StreamsConfig.DEFAULT_KEY_SERDE_CLASS_CONFIG,
    Serdes.String().getClass());
props.put(StreamsConfig.DEFAULT_VALUE_SERDE_CLASS_CONFIG,
    Serdes.String().getClass());

Overriding Per Operation

When a specific stream uses a different type, override the default with Consumed, Produced, or Materialized.

KStream<String, Long> counts = builder.stream(
    "counts-topic",
    Consumed.with(Serdes.String(), Serdes.Long()));

Custom JSON Serde

For domain objects, a common choice is a JSON Serde that maps a class to and from JSON bytes.

// Conceptual JSON value Serde for an Order POJO
Serde<Order> orderSerde = new JsonSerde<>(Order.class);

KStream<String, Order> orders = builder.stream(
    "orders",
    Consumed.with(Serdes.String(), orderSerde));

Avro & Schema Registry Serdes

For schema-governed data, use the Confluent SpecificAvroSerde or GenericAvroSerde.

  • They register and look up schemas in Schema Registry.
  • They enforce compatibility as your data evolves.

Serdes and Repartitioning

Operations like selectKey or groupBy trigger a repartition through an internal topic.

Kafka Streams needs valid key/value Serdes at that point — a missing or wrong Serde here is a frequent source of runtime errors.

Serdes for State Stores

Stateful operations materialize results into a store backed by a changelog topic.

KTable<String, Long> totals = orders
    .groupByKey()
    .count(Materialized.with(Serdes.String(), Serdes.Long()));

Common Serde Errors

Watch for these pitfalls:

  • ClassCastException — the default Serde doesn't match the actual type.
  • SerializationException — bytes don't match the deserializer (wrong topic data).
  • Forgetting to override the Serde after changing the value type.

Best Practices

Keep serialization sane:

  • Set sensible defaults, override only when types change.
  • Use Schema Registry Serdes for evolving data contracts.
  • Make custom Serdes null-safe.
  • Match Serde types exactly at repartition and store boundaries.

Quick Check

Test your understanding of Serdes.

Recap

You learned how Serdes drive serialization in Kafka Streams.

  • A Serde bundles a serializer and deserializer.
  • Set defaults in config; override with Consumed/Produced/Materialized.
  • Use JSON or Avro/Schema Registry Serdes for domain objects.
  • Mismatched Serdes are a top cause of runtime errors.
Gratis untuk memulai

Belajar Apache Kafka & Stream Processing Fundamentals dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
12
Pelajaran
48

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Serdes dan Serialisasi Data di Kafka Streams” gratis?

Ya — teks lengkap “Serdes dan Serialisasi Data di Kafka Streams” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Apache Kafka & Stream Processing Fundamentals, upgrade ke CoddyKit PRO. Kursus Apache Kafka & Stream Processing Fundamentals mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Serdes dan Serialisasi Data di Kafka Streams”?

Pelajari cara Kafka Streams menggunakan Serdes untuk melakukan serialisasi dan deserialisasi kunci serta nilai, serta cara mengonfigurasi Serdes bawaan dan per operasi. Kamu berlatih Apache Kafka & Stream Processing Fundamentals dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Apache Kafka & Stream Processing Fundamentals?

Tidak diperlukan pengalaman sebelumnya. Apache Kafka & Stream Processing Fundamentals di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Serdes dan Serialisasi Data di Kafka Streams” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Apache Kafka & Stream Processing Fundamentals ini?

Ya. Setiap pelajaran Apache Kafka & Stream Processing Fundamentals menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Membangun Aplikasi Kafka Streams Sederhana
  2. Konsep KStream & KTable
  3. Operasi Tanpa Status vs. Berstatus
  4. Serdes dan Serialisasi Data di Kafka Streams
← Kembali ke Apache Kafka & Stream Processing Fundamentals