일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- Ai
- CKA
- k8s
- Kubernetes
- 쿠버네티스 #도커 #MSA #Istio #Service Mesh
- Linear Regression #AI #기계학습 #인공지능 #Lasso #Ridge
- ML
- dadtascience
- AI #ML #Data #datascience #data mining
- xff
- rest proxy
- embedded rest proxy
- NFA #DFA #컴파일러 #Lexical
- 1*1
- linux
- 알고리즘
- datascience
- 기계학습#인공지능#AI#ML
- Data # datamining #datascience #AI #ML
- k9s
- dadtamining
- c
- rolebinding
- TLS
- https
- Linear Regression #AI #ML #기계학습 #인공지능 #선형회귀
- Datamining
- 컴파일러
- OS
- 인공지능 #AI #ML #기계학습 #Lasso #Ridge #Regularization #Linear Regression
- Today
- Total
solve-my-curiosity
Kafka 기본 개념 (1) - Broker, KRaft Controller, Schema Registry 본문
카프카는 메세지 큐 시스템을 구현해놓은 오픈소스이다.
일단 공부할 컴포넌트는
Kafka Broker
KRaft Controlelr
Embedded Rest Proxy
Schema Registry
Connect
Control Center
jmx exporter
총 7개 이다.
Kafka Broker는 Producer <-> Broker <-> Consumer를 잇는 메세지 중개자. 이름 그대로이다. 브로커 클러스터들끼리 통신하면서 Partition을 가지고 Replicas를 가지면서 고가용성을 유지한다.
KRaft Controller는 Kafka Metadata를 가지는 컨트롤러이고 여러개의 Kafka Broker들 중에서 하나의 브로커만 Controller 역할을 한다. (Raft Algorithm이 내부적으로 돌아가는 듯)
Kafka Metadata에는
- Topic 정보
- Broker 목록
- Partition 정보
- ISR 정보
- 컨슈머 그룹
- ACL
등이 있다
Kafka Broker는 메세지를 바이너리 형태로 저장하기 떄문에 (bash로 들어가서 od -sc로 확인해야한다 -> 메세지의 형식을 중앙에서 관리해줘야 한다. 그 역할이 바로 Schema Registry
스키마 아이디 저장하고
직렬화하고
발행하고
소비하고
스키마 가져오고
역직렬화하고
이 순서로 간다.
그럼 의문점이 든다.
컨슈머는 어떤 schema를 가져와서 역직렬화를 해야하는지 어떻게 알까?
Kafka Message의 구조는
[magic byte][schema ID][serialized payload]
다음과 같다.
구성 크기 설명
magic byte | 1 byte | 보통 0, 포맷 식별 용 |
schema ID | 4 bytes | Schema Registry에 저장된 ID |
payload | N bytes | 실제 직렬화된 데이터 |
schema ID의 바이트를 토대로 어떤 schema로 읽어야하는지 알 수 있다.
'Kafka' 카테고리의 다른 글
Kafka 기본 개념 (2) - Embedded Rest Proxy, Connect, Control Center, jmx exporter (0) | 2025.06.16 |
---|