카프카란?

고성능 분산 이벤트 스트리밍 플랫폼

  • 실시간 기록
  • 구독, 저장 및 처리

카프카 구성요소

카프카 클러스터, 주키퍼 클러스터, 프로듀서, 컨슈머로 구성

카프카 클러스터
  • 메세지 저장소
  • 1개의 클러스터 : N개의 브로커(각 서버)로 구성
  • 브로커는 이중화 처리, 장애 처리 등 여러 역할
주키퍼
  • 카프카 클러스터 관리 용도
  • 카프카 클러스터 정보 기록 및 관리
프로듀서
  • 카프카 클러스터에 메세지를 보내는 역할
  • 라운드로빈, 키를 이용해서 파티션을 저장함
컨슈머
  • 카프카 클러스터에서 메세지를 읽어오는 역할

토픽, 파티션

토픽과 파티션은 관련 있는 요소

토픽
  • 메세지를 구분하는 단위
  • 어떤 종류의 메세지를 구분하는 역할
  • 목적에 맞는 토픽을 사용
파티션
  • 1 토픽 : N 파티션 으로 구성
  • 토픽에 저장되어있는 파일과 같은 역할
  • 만약 프로듀서 요청이 들어오면 토픽안에 파티션을 저장하는 형식
  • 파티션은 추가만 가능한 파일
  • 파티션의 저장 위치를 오프셋 이라고함
  • 컨슈머 그룹 내에서 한개의 파티션은 한개의 컨슈머에만 연결이 가능하다.

리플리카

파티션의 복제본

리더, 팔로워
  • 여러 파티션에서 하나는 리더 나머지는 팔로워가 됨
  • 프로듀서와 컨슈머는 리더를 통해서 메세지를 처리함
  • 팔로워는 리더로부터 복제된 것
  • 리더가 속한 브로커가 장애시에 다른 팔로워가 리더