0

일정한 간격으로 모든 일괄 처리 (10k 레코드를 한꺼번에 처리하는 대신)로 카프카 (Kafka) 주제에서 메시지 배치 (10000 메시지)를 가져 오려고합니다.Spring Cloud Stream - 메시지 일괄 처리

스프링 클라우드 스트림 프로세서에서이를 수행 할 수있는 방법이 있습니까? 그렇다면 어떤 스 니펫이나 제가 참조 할 수있는 예제가 있습니까?

감사

답변

1

글쎄, 불행하게도 여전히 spring.cloud.stream.kafka.bindings.TARGET.consumer. 수준에서 더 KafkaMessageDrivenChannelAdapter.ListenerMode.batch는 지원되지 않습니다. 이 문제에 대해 문제를 제기하십시오.

한편으로는 스프링클러 Aggregator을 Kafka 주제 소비자로 사용하여 응용 프로그램 수준에서 실제로 레코드를 일괄 처리하도록 제안 할 수 있습니다. 그 후에야 처리를 위해 그들을 보낸다.

다른 대안은 카프카 바인더가 아닌 스프링 통합 카프카 (KafkaMessageDrivenChannelAdapter)를 수동으로 사용하는 것과 같습니다. 또는 @KafkaListenerConcurrentKafkaListenerContainerFactory 빈을 적절한 봄철 카프카 (batchListener 옵션)와 함께 사용하십시오.

+0

바인더에 일괄 처리를 추가 할 수있는 문제가 이미 있습니다. (https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/issues/70) –