Kafka 아키텍처
Apache Kafka 입문
Mike Metzger
Data Engineering Consultant
Kafka 구성 요소
Kafka 서버
하나 이상의 컴퓨터로 구성된 클러스터
데이터 저장
통신 관리
타 시스템(데이터베이스, 로그 등)과 연동 가능
Kafka 클라이언트
Kafka 컨슈머로 읽기
Kafka 프로듀서로 쓰기
필요에 따라 데이터 처리
Kafka 서버
스토리지(Kafka 브로커)
프로듀서가 기록한 데이터를 토픽으로 저장·구성
토픽은 파티션(별도 조각)으로 분할됨
메시지/이벤트는 이벤트 ID 기준으로 파티션에 저장
메시지는 기록된 순서대로 조회됨
1
이미지 출처: https://kafka.apache.org/intro
파티션과 복제
Kafka는 장애 허용성을 갖춤
한 시스템이 중단돼도 다른 시스템이 데이터 제공
허용 장애 수 = 복제 계수 - 1
최대 복제 계수 = 서버 수
파티션 복제로 고가용성을 달성
예시
브로커 3개의 Kafka 클러스터
토픽 3개 정의
복제 2x == 시스템 1대 손실 허용
브로커 1: 토픽 1, 토픽 2 복제본
브로커 2: 토픽 2, 토픽 3 복제본
브로커 3: 토픽 1, 토픽 3 복제본
각 토픽은 클러스터 내 브로커 2개에 분산됨
1대 장애 예시
브로커 2가 장애 발생
복제 계수 2x
2 - 1 == 시스템 1대 장애 허용
각 토픽은 여전히 클러스터에 최소 1개 복제본 존재
2대 장애 예시
브로커 2대 장애
복제 계수 2x
허용 범위(시스템 1대) 초과 장애
토픽 2는 클러스터에서 사용 불가
토픽 1, 3은 사용 가능하여 전면 중단은 아님
연습해 봅시다!
Apache Kafka 입문
Preparing Video For Download...