본문 바로가기

IT

카프카 Kafka 기본 개념 정리

300x250

 

 

 

Kafka란?

 

- 실시간 대용량 이벤트 스트림 플랫폼 솔루션

- 데이터 파이프라인 구축부터 마이크로서비스까지 활용

- 주요특징

 

1> 뛰어난 핵심기능

2> 다양한 환경지원

3> 신뢰성과 편의성

 

 

Topic은 Partition으로 구성된 일련의 로그파일

 

ㄴ 시간의 흐름에 따라 메시지가 순차적으로 물리작인 파일에 write

ㄴ 하나의 토픽은 여러개의 파티션으로 구성

ㄴ Topic = Table 같은 기능

ㄴ key와 value 기반의 메시지 구조

 

 

 

# Producer & Consumer 개요

 

ㄴ Producer =(SEND)=> Broker(TOPIC)-Partitions = Consumer 

 

프로듀서는 topic에 메시지를 보냄 (write)

어떤 브로커의 파티션으로 메시지를 보낼지 전략적으로 결정

 

컨슈머는 topic에서 메시지를 읽어들임 (read)

어떤 브로커의 파티션에서 메시지를 읽어들일지 전략적으로 결정

 

* 자바 객체(object)의 Serialization

 

객체(object)를 객체의 유형, 데이터 포맷, 적용시스템에 상과없이 이동/저장/복원을 자유롭게 하기위해

바이트배열(바이트스트림)형태로 저장

ㄴ 객체는 Serialization 과 Deserializaion 통해서 자유롭게 수행

 

 

* 카프카는 파티션 내에는 전송순서가 보장되지만 

멀티파티션은 메시지 전송 순서가 보장되지 않는다.

 

* 컨슈머 그룹 : 그룹안에 컨슈머 생성

 

하나의 파티션 <-> 하나의 컨슈머 매핑

ㄴ 컨슈머가 더 많으면 리밸런싱 가능

ㄴ 파티션 N <-> 컨슈머 1 N:1 매핑도 가능

 

 

# Kafka Consumer 

 

- 브로커의 topic 메시지를 읽는 역할

- 모든 consumer group에 소속

- Consumer는 브로커의 topic의 파티션 별로 분배

 

consumer는 subscribe 통해 파티션 할당하고 poll() 메소드 통해 

지속적으로 땡겨옴

 

offset을 변경시켜줌

 

 

300x250