0Pricing
Apache Kafka & Stream Processing Fundamentals · Pelajaran

Kueri Interaktif dan Penyimpanan Status

Pelajari cara Kafka Streams menyediakan penyimpanan status lokalnya untuk kueri langsung, sehingga aplikasi aliran dapat menjadi tampilan terwujud berlatensi rendah.

Kueri Interaktif dan Penyimpanan Status 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.

State Stores Recap

Stateful operations like aggregations and joins keep their data in state stores — local key-value stores backed by changelog topics for fault tolerance.

Normally results flow out to a topic, but they also live right inside your app.

What Are Interactive Queries?

Interactive Queries (IQ) let your application read those local state stores directly — no extra database, no re-consuming a topic.

Your streaming app effectively becomes a queryable materialized view.

Naming a Store

To query a store you must name it during materialization.

KTable<String, Long> counts = builder
    .stream("clicks")
    .groupByKey()
    .count(Materialized.as("clicks-store"));

Getting a Read Handle

After the app is running, fetch a read-only view of the store from the KafkaStreams instance.

ReadOnlyKeyValueStore<String, Long> store =
    streams.store(StoreQueryParameters.fromNameAndType(
        "clicks-store",
        QueryableStoreTypes.keyValueStore()));

Point Lookups & Range Scans

Once you have the store, query it like a map.

Long value = store.get("user-42");

KeyValueIterator<String, Long> all = store.all();
while (all.hasNext()) {
  KeyValue<String, Long> kv = all.next();
}
all.close();

The Distribution Problem

State is partitioned across app instances. A given key lives on only one instance.

If you query the wrong instance, you won't find the key — so the app needs to know who owns each key.

Discovering Key Owners

Kafka Streams can tell you which instance hosts a key, given the store name and key serializer.

KeyQueryMetadata meta = streams.queryMetadataForKey(
    "clicks-store", "user-42", Serdes.String().serializer());
HostInfo host = meta.activeHost();

Exposing application.server

Set application.server so each instance advertises its host and port. This metadata powers cross-instance routing.

props.put(StreamsConfig.APPLICATION_SERVER_CONFIG,
    "node1.internal:8080");

Building a Query REST Layer

A typical pattern: wrap the app in an HTTP server. On a request, find the owning host. If it's local, read the store; otherwise proxy to the remote instance.

Handling Rebalances

During rebalances, stores may be migrating and temporarily unavailable, raising InvalidStateStoreException.

  • Retry with backoff.
  • Check KafkaStreams.State.RUNNING before querying.

When to Use IQ

Interactive Queries shine when you want:

  • Low-latency reads of aggregated state.
  • To avoid a separate serving database.
  • A self-contained, scalable materialized view.

For complex ad-hoc queries, a dedicated store may still be better.

Quick Check

Test your understanding of interactive queries.

Recap

You learned Interactive Queries.

  • Name a store, then get a read-only handle from KafkaStreams.
  • State is partitioned; use queryMetadataForKey to find owners.
  • Set application.server and proxy cross-instance requests.
  • Handle rebalance exceptions with retries.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Kueri Interaktif dan Penyimpanan Status” gratis?

Ya — teks lengkap “Kueri Interaktif dan Penyimpanan Status” 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 “Kueri Interaktif dan Penyimpanan Status”?

Pelajari cara Kafka Streams menyediakan penyimpanan status lokalnya untuk kueri langsung, sehingga aplikasi aliran dapat menjadi tampilan terwujud berlatensi rendah. 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 “Kueri Interaktif dan Penyimpanan Status” 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. Operasi Windowing dalam Kafka Streams
  2. Join & Agregasi dalam Aliran
  3. Pengantar KSQL untuk Analitik Aliran
  4. Kueri Interaktif dan Penyimpanan Status
← Kembali ke Apache Kafka & Stream Processing Fundamentals