DevOps/Kafka

[카프카 프로그래밍] 토픽과 파티션

키깡 2024. 6. 27.
728x90

토픽

  • 토픽은 카프카에서 데이터 구분 위해 사용.
  • 토픽은 1개 이상 파티션 소유

파티션

  • 파티션에서 프로듀서가 보낸 데이터들이 저장되는데 이 데이터들을 레코드라 함.
  • 파티션은 결론적으로 큐와 비슷하지만 차이가 있다면 큐는 데이터를 가져가면 삭제하지만 카프카에서는 삭제하지 않는다는 것.
  • 그래서 여러 컨슈머 (이를 테면 하둡과 엘라스틱 서치가 있다 치자.) 들이 모두 데이터를 가져갈 수 있음.

토픽과 파티션이 배치 되는 방법

  • 파티션이 5개인 토픽을 생성했을 때 보통 0번부터 라운드 로빈 방식으로 리더 파티션들이 생성.

  • 카프카 클라이언트는 리더 파티션이 있는 브로커와 통신하여 데이터를 주고 받아 특정브로커에 통신이 집중되는 핫스팟 현상을 막고 선형 확장 하여 데이터가 많아져도 자연스럽게 대응.

  • 위 같이 특정 브로커에 파티션이 쏠릴 때도 있는데 이런 경우 kafka-reassign-partitons.sh 명령으로 파티션 재분배 가능

이 포스팅은 모두 인프런의 [아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!를 듣고 제가 다시 볼 내용들을 정리한 포스팅입니다.

댓글