Advanced Spring Boot 4: Event-Driven Architecture (Kafka) · レッスン

バッチ消費と確認応答モード

Kafkaレコードをバッチで消費し、スループット、レイテンシ、配信保証のバランスに適した確認応答モードを選ぶ方法を学びます。

レッスン 4/413 ステップ

「バッチ消費と確認応答モード」はCoddyKit上の無料Advanced Spring Boot 4: Event-Driven Architecture (Kafka)レッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これは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: batch

A 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: 500

Acknowledgment 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: batch to receive a List of records.
  • Tune max.poll.records for batch size.
  • Choose an AckMode to control offset commits.
  • Acknowledge after processing and keep writes idempotent.
無料で開始

AI チューターと学ぶ Advanced Spring Boot 4: Event-Driven Architecture (Kafka) — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
12
レッスン
48

よくある質問

「バッチ消費と確認応答モード」レッスンは無料ですか?

はい。「バッチ消費と確認応答モード」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、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時間対応のAIチューターがレッスンを進める中での質問に答えます。

Advanced Spring Boot 4: Event-Driven Architecture (Kafka)を始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのAdvanced Spring Boot 4: Event-Driven Architecture (Kafka)は初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「バッチ消費と確認応答モード」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このAdvanced Spring Boot 4: Event-Driven Architecture (Kafka)レッスンでコードを書いて実行できますか?

はい。すべてのAdvanced Spring Boot 4: Event-Driven Architecture (Kafka)レッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Kafkaリスナーコンテナの構築
  2. コンシューマーグループの管理
  3. デシリアライズとメッセージ変換
  4. バッチ消費と確認応答モード
← Advanced Spring Boot 4: Event-Driven Architecture (Kafka)に戻る