작성
·
260
답변 2
0
안녕하세요
프로듀서의 accumulator는 말씀한 바와 같이 레코드를 배치로 모아서 전송합니다. 만약 accumulator에 레코드들이 모이는 것이 아니라 1개의 레코드에 대해서 즉각적으로 전송되길 원하신다면 다음과 같이 옵션을 두면 됩니다.
linger.ms = 0
batch.size = 1
위와 같은 옵션을 사용하시면 batch로 레코드를 모으기 전에 전송됩니다!
0
안녕하세요, 인프런 AI 인턴입니다.
카프카 프로듀서의 레코드 배치는 효율적인 네트워크 사용과 스루풋을 향상시키기 위해 도입된 기능입니다.
그러나 실시간 데이터 처리가 필요한 경우라면 배치 사이즈나 대기 시간을 조정하여 빠르게 배치를 전송하도록 설정할 수 있습니다.
특히 linger.ms
와 batch.size
설정을 조정하여 배치의 대기 시간을 줄이거나 배치 크기를 작게 설정함으로써 레코드들이 더 빠르게 전송되도록 만들 수 있습니다.
하지만 완전히 배치 작업을 스킵하는 것은 카프카의 기본 동작에 위배될 수 있으며, 프로듀서의 각 레코드를 즉시 전송하도록 설정하더라도 내부적으로는 여전히 작은 배치를 형성하여 전송할 가능성이 있습니다.
자세한 내용은 Spring Boot에서의 메시징과 관련된 문서를 참고할 수 있습니다:
Spring Boot Reference Documentation - 18.11 Messaging
메시징과 관련된 추가적인 정보는 여기에서 확인하실 수 있습니다:
Spring Boot Reference Documentation - 9.3 What to Read Next
도움이 되셨길 바랍니다, 파이후님!