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을 변경시켜줌
'IT' 카테고리의 다른 글
소켓 데몬 방식과 api 방식 차이 (1) | 2024.11.08 |
---|---|
암호화 통신 Cipher Suite 암호화 방식 모음 제거 비활성화 방법 (0) | 2024.11.04 |
공인IP, 사설IP 개념 및 차이 정리 (0) | 2024.10.20 |
OSI 7 Layer 네트워크 프로토콜과 통신 7 계층 (0) | 2024.10.20 |
IT 개발 관련 용어 및 개념 (0) | 2024.10.20 |