• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 엔지니어링

  • 해결 여부

    미해결

카프카 영속성 관련 질문

22.06.01 14:53 작성 조회수 153

1

안녕하세요. 영속성 관련해 질문 드립니다.
 
- 데이터를 파일 시스템에 저장함으로써 영속성을 얻게 되고
- 한 번 읽은 데이터를 페이지 캐시 메모리 영역에 놔둠으로써 처리량 또한 높게 유지할 수 있다
 
저는 이렇게 이해했는데, 이렇게 했을 때 컨슈머 쪽에서 Read는 빠르겠지만 프로듀서 쪽에서 Write하는 속도는 여전히 느릴 것처럼 느껴지는데 이 문제는 배치로 처리함으로써 해결하는 건가요?
 
혹시 컨슈머 속도 대비 프로듀서의 속도가 느려서 컨슈머 쪽에서 컴퓨팅 리소스 낭비가 생기는 경우는 없나요?
 
보통 프로듀서의 데이터가 브로커에 도착하는 속도와 컨슈머가 브로커의 데이터를 읽어가는 속도 중 어느 쪽이 더 빠른가요?
 
 

답변 1

답변을 작성해보세요.

1

돈가스날다님, 질문주신내용 답변드립니다.

 

1) 컨슈머와 프로듀서의 속도 차이?

컨슈머와 프로듀서는 내부에서 구현하신 로직에 따라서 속도차이가 날 수 있겠으나 기본적으로는 "둘 다 빠르게 처리한다"라고 가정하고 개발하시면 됩니다. 만약 컨슈머의 처리 속도가 느리다면 파티션 개수와 컨슈머 개수를 스케일 아웃하여 대응할 수 있습니다.

2) 컨슈머 속도와 프로듀서의 속도 차이에 의한 컨슈머의 리소스 낭비?

앞서 1에서 말씀드린바와 같이 내부 로직에 의해서 처리량이 차이날 수 있습니다. 물론 프로듀서에서 보내는 데이터의 양이 많을 경우엔 컨슈머가 리소스를 100%사용하지 않는 경우도 있겠으나, 이 경우는 컨슈머 랙이 없는 정상적인 경우이므로 일반적으로 best case라고 볼 수 있습니다.

3) 프로듀서와 컨슈머의 속도 어느 쪽이 더 빠른가요?

내부 로직에 따라 다르므로 구현하시는 방법, 데이터 생성양에 따라 그때 그때 다르다고 볼 수 있습니다.