카프카 기본개념2

Subin Park·2023년 4월 9일
0

Kafka

목록 보기
2/4

Topic

  • 프로듀서로부터 전달된 데이터를 보관하는 역할
  • 데이터를 구분하기 위해 사용하는 단위
  • 토픽에는 한 개 이상의 파티션이 존재

Partition

  • 하나의 토픽을 여러개의 파티션으로 분할한 것
  • 각 파티션이 동시에 들어온 메세지를 처리하도록 구성하여 병렬 처리 방식으로 처리 속도를 높이기 위함
  • 파티션을 늘리는 것은 가능하지만, 파티션을 줄이는 방법은 존재하지 않기 때문에 파티션을 줄이려면 토픽을 삭제해야함

Leader Partition

  • 프로듀서 또는 컨슈머와 직접 통신하는 파티션
  • 프로듀서/컨슈머와 직접 통신함으로써 읽기, 쓰기 연산을 담당

Follower Partition

  • 프로듀서로부터 리더 파티션으로 전달된 데이터를 복제하여 복제된 데이터를 저장
  • 같은 파티션의 팔로워가 동일한 브로커 내에 위치할 수 없음
  • 리더 파티션이 속해있는 브로커가 장애가 발생한다면, 팔로워 파티션이 리더 파티션을 대신할 수 있음
    - 단, ISR 그룹에 속한 팔로워 파티션만 리더 파티션이 될 자격을 갖고 있음



Record

  • 프로듀서가 브로커로 전송하거나 컨슈머가 읽어가는 데이터
  • 타임스탬프, 메세지 key/value, 오프셋, 헤더로 구성
  • 타임스탬프는 프로듀서에서 해당 레코드가 생성된 시점의 유닉스 타임으로 설정
  • 메세지 key는 브로커 내부 파티션에 메세지가 저장되는 위치에 관여
  • 메세지 value는 실제 메세지가 전달하고자 하는 내용물을 의미
  • 헤더는 레코드의 추가적인 정보를 담는 메타데이터 저장소를 뜻함

Offset

  • 순차적으로 증가하는 64비트 형태
  • 오프셋을 통해 컨슈머가 해당 토픽의 마지막에 읽은 레코드 위치를 알 수 있음

0개의 댓글