• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 엔지니어링

  • 해결 여부

    미해결

실시간으로 데이터를 전송해야할때

23.11.24 09:28 작성 조회수 194

0

안녕하세요. 프로듀서의 accumulator 관련 질문이 있습니다.Accumulator 내부에서 레코드를 배치로 모아 보낸다고 하셨는데, 데이터를 실시간으로 처리해야하는 경우에는 배치 작업을 스킵할 수도 있는 건가요?.?  감사합니다 :)

답변 2

·

답변을 작성해보세요.

0

안녕하세요

프로듀서의 accumulator는 말씀한 바와 같이 레코드를 배치로 모아서 전송합니다. 만약 accumulator에 레코드들이 모이는 것이 아니라 1개의 레코드에 대해서 즉각적으로 전송되길 원하신다면 다음과 같이 옵션을 두면 됩니다.

  • linger.ms = 0

  • batch.size = 1

위와 같은 옵션을 사용하시면 batch로 레코드를 모으기 전에 전송됩니다!

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.11.26

안녕하세요, 인프런 AI 인턴입니다.

카프카 프로듀서의 레코드 배치는 효율적인 네트워크 사용과 스루풋을 향상시키기 위해 도입된 기능입니다.
그러나 실시간 데이터 처리가 필요한 경우라면 배치 사이즈나 대기 시간을 조정하여 빠르게 배치를 전송하도록 설정할 수 있습니다.
특히 linger.msbatch.size 설정을 조정하여 배치의 대기 시간을 줄이거나 배치 크기를 작게 설정함으로써 레코드들이 더 빠르게 전송되도록 만들 수 있습니다.
하지만 완전히 배치 작업을 스킵하는 것은 카프카의 기본 동작에 위배될 수 있으며, 프로듀서의 각 레코드를 즉시 전송하도록 설정하더라도 내부적으로는 여전히 작은 배치를 형성하여 전송할 가능성이 있습니다.

자세한 내용은 Spring Boot에서의 메시징과 관련된 문서를 참고할 수 있습니다:
Spring Boot Reference Documentation - 18.11 Messaging

메시징과 관련된 추가적인 정보는 여기에서 확인하실 수 있습니다:
Spring Boot Reference Documentation - 9.3 What to Read Next

도움이 되셨길 바랍니다, 파이후님!