Kafka란?
목적: Event/Message 전송을 위해 사용된다.
장점: 고가용성, 빠른 처리
단점: 순서보장이 어렵다. 아주 작게 사용이 어렵다.
- Distributed Message Platform
- Distributed -> 분산 처리가 된다.
- Pub/Sub -> 전달하는 쪽은 전달받는 곳에 관여할 필요가 없다.
- Producer, Consumer가 존재
- 다 : 다 로 동작
- Server: Zookeeper로 Broker 간의 분산처리 정보를 관리한다.
- 보통 3개 이상의 브로커로 구성된다.
- KSQL, COnnector, Kstream 등의 추가 모듈을 구성해서 사용할 수 있다.
- KRaft를 통해 zookeeper를 제거할 수 있다.
Zookeeper는 뭔데?
- 카프카 클러스터 및 하위요소에 대한 전반적인 메타정보, 컨트롤러 정보, 브로커 정보 등을 관리할 수 있게 해준다.
- 브로커는 실제 데이터를 받아서 저장하고 있음.
- 컨트롤러는 브로커를 관리하는 역할. 브로커의 토픽 선정, 파티션 생성, 레플리케이션, 리더 관리 등을 함.
CMAK (Kafka Manager)
- 카프카 클러스터를 관리하기 위한 GUI Tool
- Cluster 모니터링
- Topic 생성, 조회, 삭제
- 파티션 추가, Rebalance, Leader 변경
- Consumer 조회
Kafka Objects
- Topic: 폴더, 특정 목적으로 생성된 데이터 집합
- Partition: 하위폴더, 토픽의 하위개념으로 분산을 위해 나누어 처리되는 단위, leader/follower 존재. 실제 read/write는 리더에서 발생됨. follower는 leader를 복제함.
- Replica: Leader의 장애를 대응하기 위해 만들어놓는 복사본. follower라고 불림. Pull방식으로 leader에서 복제함.
- ISR (In Sync Replica): replica의 그룹을 의미함. 리더로 전환될 수 있는 replica partition의 그룹이며, leader가 commit, lag 확인하여 그룹에서 제외하기도 함.
- Producer: data를 publishing 하는 주체
- Consumer: data를 subscribe 하는 주체
- Offset: 책갈피, Consumer가 어디까지 가져갔는지 저장하는 값. Consumer Group 별로 상이함.
'이것저것 지식' 카테고리의 다른 글
redis의 Geospatial 기능 (0) | 2024.03.14 |
---|---|
서비스 품질요건 (0) | 2024.03.11 |
gitIgnore를 만들고 싶을 때 (0) | 2024.03.08 |
gitignore 중간에 변경하고 나서 적용이 안될 때 (0) | 2024.03.08 |
맥북 트랙패드, 매직 트랙패드 200% 활용하게 해주는 개꿀 앱 (0) | 2022.05.01 |