Advanced Spring Boot 4: Event-Driven Architecture (Kafka) · Lección

Consumo por lotes y modos de confirmación

Aprenda a consumir registros de Kafka por lotes y a elegir el modo de confirmación adecuado para equilibrar rendimiento, latencia y garantías de entrega.

Lección 4 de 413 pasos

Consumo por lotes y modos de confirmación es una lección gratuita de Advanced Spring Boot 4: Event-Driven Architecture (Kafka) en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Advanced Spring Boot 4: Event-Driven Architecture (Kafka), y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Advanced Spring Boot 4: Event-Driven Architecture (Kafka) incluye 4 lecciones en total.

Por qué consumir por lotes

De forma predeterminada, un @KafkaListener procesa un registro cada vez. En las canalizaciones de alto rendimiento, procesar los registros en lotes reduce la sobrecarga y permite realizar escrituras masivas en las bases de datos.

Activar el modo por lotes

Establezca batch-listener en true en la factoría de contenedores o configúrelo en las propiedades.

spring:
  kafka:
    listener:
      type: batch

Un método listener por lotes

Cuando el modo por lotes está activado, el listener acepta una List de cargas útiles en lugar de un único valor.

@KafkaListener(topics = "orders")
public void handle(List<Order> orders) {
    log.info("Received batch of {}", orders.size());
    orderRepository.saveAll(orders);
}

Acceder a los metadatos del lote

También puede recibir la lista completa de objetos ConsumerRecord para leer las claves, particiones y offsets de cada registro.

@KafkaListener(topics = "orders")
public void handle(List<ConsumerRecord<String,Order>> records) {
    for (var r : records) {
        process(r.value(), r.partition(), r.offset());
    }
}

Controlar el tamaño del lote

El tamaño del lote está limitado por max.poll.records. Ajústelo para controlar cuántos registros obtiene cada consulta.

spring:
  kafka:
    consumer:
      max-poll-records: 500

Resumen de los modos de confirmación

Spring Kafka ofrece varios valores de AckMode:

  • BATCH — confirma los offsets después de todo el lote.
  • RECORD — confirma después de cada registro.
  • MANUAL / MANUAL_IMMEDIATE — usted llama explícitamente a la confirmación.

Configurar AckMode

Configure el modo de confirmación en la factoría de contenedores del listener.

factory.getContainerProperties()
    .setAckMode(ContainerProperties.AckMode.BATCH);

Confirmación manual en lotes

Con el modo MANUAL, inyecte un Acknowledgment y llame a acknowledge() únicamente después de procesar correctamente el lote.

@KafkaListener(topics = "orders")
public void handle(List<Order> orders, Acknowledgment ack) {
    orderRepository.saveAll(orders);
    ack.acknowledge();
}

Garantías de entrega

Confirmar después del procesamiento proporciona una entrega de al menos una vez: si la aplicación se bloquea a mitad del lote, este se vuelve a entregar.

Haga que el procesamiento por lotes sea idempotente para que el reprocesamiento sea seguro.

Rendimiento frente a latencia

Los lotes más grandes mejoran el rendimiento, pero aumentan la latencia por mensaje y el uso de memoria. Empiece con un valor moderado de max.poll.records y mida los resultados.

Integración

El consumo por lotes junto con el modo de confirmación adecuado permite crear consumidores eficientes y fiables. Combine type: batch, un tamaño de consulta ajustado, confirmación manual y escrituras idempotentes.

Comprobación rápida

Compruebe su comprensión del consumo por lotes.

Resumen

Ha aprendido sobre el consumo por lotes y los modos de confirmación.

  • Establezca type: batch para recibir una List de registros.
  • Ajuste max.poll.records para definir el tamaño del lote.
  • Elija un AckMode para controlar la confirmación de offsets.
  • Confirme después del procesamiento y mantenga las escrituras idempotentes.
Gratis para empezar

Aprende Advanced Spring Boot 4: Event-Driven Architecture (Kafka) con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
12
Lecciones
48

Preguntas frecuentes

¿La lección «Consumo por lotes y modos de confirmación» es gratis?

Sí — el texto completo de «Consumo por lotes y modos de confirmación» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Advanced Spring Boot 4: Event-Driven Architecture (Kafka), actualiza a CoddyKit PRO. El curso de Advanced Spring Boot 4: Event-Driven Architecture (Kafka) incluye 4 lecciones en total.

¿Qué aprenderé en «Consumo por lotes y modos de confirmación»?

Aprenda a consumir registros de Kafka por lotes y a elegir el modo de confirmación adecuado para equilibrar rendimiento, latencia y garantías de entrega. Practicas Advanced Spring Boot 4: Event-Driven Architecture (Kafka) con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Advanced Spring Boot 4: Event-Driven Architecture (Kafka)?

No se requiere experiencia previa. Advanced Spring Boot 4: Event-Driven Architecture (Kafka) en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Consumo por lotes y modos de confirmación»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Advanced Spring Boot 4: Event-Driven Architecture (Kafka)?

Sí. Cada lección de Advanced Spring Boot 4: Event-Driven Architecture (Kafka) incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Construcción de contenedores de listeners de Kafka
  2. Gestión de grupos de consumidores
  3. Deserialización y conversión de mensajes
  4. Consumo por lotes y modos de confirmación
← Volver a Advanced Spring Boot 4: Event-Driven Architecture (Kafka)