الاستهلاك على دفعات وأنماط الإقرار
تعلّم استهلاك سجلات Kafka على دفعات واختيار نمط الإقرار المناسب للموازنة بين معدل المعالجة وزمن الاستجابة وضمانات التسليم.
الاستهلاك على دفعات وأنماط الإقرار درس مجاني في Advanced Spring Boot 4: Event-Driven Architecture (Kafka) على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Advanced Spring Boot 4: Event-Driven Architecture (Kafka)، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Advanced Spring Boot 4: Event-Driven Architecture (Kafka) 4 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
Why Batch Consumption
By default a @KafkaListener processes one record at a time. For high-throughput pipelines, processing records in batches reduces overhead and lets you bulk-write to databases.
Enabling Batch Mode
Set batch-listener to true on the container factory, or configure it in properties.
spring:
kafka:
listener:
type: batchA Batch Listener Method
When batch mode is on, your listener accepts a List of payloads instead of a single value.
@KafkaListener(topics = "orders")
public void handle(List<Order> orders) {
log.info("Received batch of {}", orders.size());
orderRepository.saveAll(orders);
}Accessing Batch Metadata
You can also receive the full list of ConsumerRecord objects to read keys, partitions, and offsets per record.
@KafkaListener(topics = "orders")
public void handle(List<ConsumerRecord<String,Order>> records) {
for (var r : records) {
process(r.value(), r.partition(), r.offset());
}
}Controlling Batch Size
The batch size is bounded by max.poll.records. Tune it to control how many records each poll fetches.
spring:
kafka:
consumer:
max-poll-records: 500Acknowledgment Modes Overview
Spring Kafka offers several AckMode values:
BATCH— commit offsets after the whole batch.RECORD— commit after each record.MANUAL/MANUAL_IMMEDIATE— you call ack explicitly.
Setting AckMode
Configure the ack mode on the listener container factory.
factory.getContainerProperties()
.setAckMode(ContainerProperties.AckMode.BATCH);Manual Acknowledgment in Batches
With MANUAL mode, inject an Acknowledgment and call acknowledge() only after successful processing of the batch.
@KafkaListener(topics = "orders")
public void handle(List<Order> orders, Acknowledgment ack) {
orderRepository.saveAll(orders);
ack.acknowledge();
}Delivery Guarantees
Acknowledging after processing gives at-least-once delivery: if the app crashes mid-batch, the batch is redelivered.
Make your batch processing idempotent so reprocessing is safe.
Throughput vs Latency
Larger batches improve throughput but increase per-message latency and memory use. Start with a moderate max.poll.records and measure.
Putting It Together
Batch consumption plus the right ack mode lets you build efficient, reliable consumers. Combine type: batch, a tuned poll size, manual ack, and idempotent writes.
Quick Check
Test your understanding of batch consumption.
Recap
You learned batch consumption and acknowledgment modes.
- Set
type: batchto receive a List of records. - Tune
max.poll.recordsfor batch size. - Choose an
AckModeto control offset commits. - Acknowledge after processing and keep writes idempotent.
الأسئلة الشائعة
هل درس «الاستهلاك على دفعات وأنماط الإقرار» مجاني؟
نعم — نص درس «الاستهلاك على دفعات وأنماط الإقرار» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Advanced Spring Boot 4: Event-Driven Architecture (Kafka)، انتقل إلى CoddyKit PRO. تتضمن دورة Advanced Spring Boot 4: Event-Driven Architecture (Kafka) 4 دروس في المجموع.
ماذا ستتعلم في «الاستهلاك على دفعات وأنماط الإقرار»؟
تعلّم استهلاك سجلات Kafka على دفعات واختيار نمط الإقرار المناسب للموازنة بين معدل المعالجة وزمن الاستجابة وضمانات التسليم. تتمرن على Advanced Spring Boot 4: Event-Driven Architecture (Kafka) مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Advanced Spring Boot 4: Event-Driven Architecture (Kafka)؟
لا تُشترط خبرة سابقة. Advanced Spring Boot 4: Event-Driven Architecture (Kafka) على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «الاستهلاك على دفعات وأنماط الإقرار»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Advanced Spring Boot 4: Event-Driven Architecture (Kafka) هذا؟
نعم. كل درس في Advanced Spring Boot 4: Event-Driven Architecture (Kafka) يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- بناء حاويات مستمعي Kafka
- إدارة مجموعات المستهلكين
- إلغاء التسلسل وتحويل الرسائل
- الاستهلاك على دفعات وأنماط الإقرار