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.
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: batchUn 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: 500Resumen 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: batchpara recibir una List de registros. - Ajuste
max.poll.recordspara definir el tamaño del lote. - Elija un
AckModepara controlar la confirmación de offsets. - Confirme después del procesamiento y mantenga las escrituras idempotentes.
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
- Construcción de contenedores de listeners de Kafka
- Gestión de grupos de consumidores
- Deserialización y conversión de mensajes
- Consumo por lotes y modos de confirmación