공부, 기록

Kafka - 1 본문

공부/소소한 개발

Kafka - 1

무는빼주세요 2021. 12. 5. 20:45

카프카는 무엇일까?

1. Data in Motion Platform

2. Event Streaming Platform (여기서 Event는 비즈니스에서 일어나는 모든 일을 의미한다)

즉 카프카는 데이터가 실시간으로 이벤트에 따라 움직이는 플랫폼이다.

 

카프카의 특징

1. 이벤트 스트림을 안전하게 전송 (Publish & Subscribe)

2. 이벤트 스트림을 디스크에 저장 (Write to Disk)(기존 메시지 플랫폼들과 가장 큰 차이를 가지는 부분)

3. 이벤트 스트림을 분석 및 처리 (Processing & Analysis)

 

카프카의 사용 사례로는

Messaging System, IOT 디바이스로부터 데이터 수집, API에서 발생하는 로그 수집, 리얼타임 이벤트 스트림 프로세싱 (이상감지 등), DB 동기화(MSA 기반의 분리된 DB간 동기화), 실시간 ETL, Spark, Flink, Hadoop과 같은 빅데이터 기술과 같이 사용 등이 있다.

 

Topic : 카프카 내에서 메시지가 저장되는 장소를 논리적으로 표현한 것

Producer : 메시지를 만들어 토픽으로 전송하는 API

Consumer : 토픽내의 데이터를 가져와 활용하는 API

Consumer Group : 토픽의 메시지를 사용하기 위해 협력하는 컨슈머들의 집합

Commit Log : 추가만 가능하고 변경이 불가능한 데이터 스트럭처 (여기서 이벤트의 위치를 offset 이라고 함)

하나의 컨슈머는 하나의 컨슈머 그룹에 포함이 되며 하나의 그룹내에 있는 컨슈머들은 협력하여 토픽의 메시지를 분산, 병렬 처리 한다.

 

프로듀서와 컨슈머는 서로 알지 못하며 각각의 고유 속도로 commit log에 Write와 Read를 수행한다.

 

다른 컨슈머 그룹에 속한 컨슈머들은 서로 관련이 없으며 Commit log에 있는 Event를 동시에 다른 위치에서 Read할 수 있음.

 

 

Partition : 커밋로그, 하나의 토픽은 하나 이상의 파티션으로 구성되어 있다. 병렬처리를 위해서 다수의 파티션을 사용할 수 있음.

Segment : 메시지가 저장되는 실제 물리 FILE. 지정된 크기, 기간보다 오래 사용되면 새 파일을 생성하여 추가된다.

 

 

토픽을 생성할 경우 파티션 개수를 지정할 수 있으며 각 파티션은 Broker들에 분산되고 세그먼트 파일로 구성이 됨.

Rolling Strategy : 세그먼트 파일이 지정된 용량 또는 시간으로 분리 및 생성 

파티션의 가장 끝 Segment 에서만 데이터가 Write 된다.

각 파티션들의 서로의 offset 번호는 상관 관계가 없다.

event의 순서는 하나의 파티션 내에서만 보장된다.

 

 

 

 

 

강의 https://fastcampus.co.kr/dev_online_kafka 를 수강한 후 정리한 내용 입니다.

'공부 > 소소한 개발' 카테고리의 다른 글

BIO / NIO  (0) 2022.01.22
Kafka - 2  (0) 2021.12.19
CORS  (0) 2021.12.04
흐름제어 오류제어 혼잡제어  (0) 2021.11.21
객체지향의 5원칙  (0) 2021.10.04