الاستعلامات التفاعلية ومخازن الحالة
تعلّم كيف يتيح Kafka Streams الاستعلام المباشر عن مخازن حالته المحلية، محولًا تطبيق التدفق إلى عرض مادي منخفض الكمون.
الاستعلامات التفاعلية ومخازن الحالة درس مجاني في Apache Kafka & Stream Processing Fundamentals على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Apache Kafka & Stream Processing Fundamentals، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Apache Kafka & Stream Processing Fundamentals 4 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
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.RUNNINGbefore 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.
تعلم Apache Kafka & Stream Processing Fundamentals مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 12
- الدروس
- 48
الأسئلة الشائعة
هل درس «الاستعلامات التفاعلية ومخازن الحالة» مجاني؟
نعم — نص درس «الاستعلامات التفاعلية ومخازن الحالة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Apache Kafka & Stream Processing Fundamentals، انتقل إلى CoddyKit PRO. تتضمن دورة Apache Kafka & Stream Processing Fundamentals 4 دروس في المجموع.
ماذا ستتعلم في «الاستعلامات التفاعلية ومخازن الحالة»؟
تعلّم كيف يتيح Kafka Streams الاستعلام المباشر عن مخازن حالته المحلية، محولًا تطبيق التدفق إلى عرض مادي منخفض الكمون. تتمرن على Apache Kafka & Stream Processing Fundamentals مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Apache Kafka & Stream Processing Fundamentals؟
لا تُشترط خبرة سابقة. Apache Kafka & Stream Processing Fundamentals على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «الاستعلامات التفاعلية ومخازن الحالة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Apache Kafka & Stream Processing Fundamentals هذا؟
نعم. كل درس في Apache Kafka & Stream Processing Fundamentals يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- عمليات النوافذ الزمنية في Kafka Streams
- الضم والتجميع في التدفقات
- مقدمة إلى KSQL لتحليلات التدفقات
- الاستعلامات التفاعلية ومخازن الحالة