일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- CVAT
- tcp
- JavaScript
- Vision
- Operating System
- docker
- java
- OS
- MAC address
- helm
- ip
- aws s3
- Trino
- Network
- grafana
- kubernetes
- kubectl
- AWS
- Packet
- kubeadm
- airflow
- Spring
- EC2
- PostgreSQL
- CSV
- log
- jvm
- zookeeper
- Python
- Kafka
- Today
- Total
JUST WRITE
Kafka Topic 본문
Topic
Kafka에서 Topic은 record, data를 저장하는 곳이다.
Kafka에서 data를 주고받을 때 Topic을 통해서 주고받는다.
Topic 기본적으로 아래와 같은 특징을 가진다.
- Topic은 record를 log에 저장
- record를 저장한 log는 partition으로 나눠어져 저장 가능
- partition은 다수의 Server에 나눠어져 저장 가능
Topic Partitions
Kafka는 Topic으로 들어온 record를 log에 저장한다.
Topic의 log는 partition으로 나뉜다.
기본적으로 record의 key를 기준으로 parition에 나누어진다.
record의 key는 record를 kafka에 전달한 producer가 record와 함께 전달한다.
key가 없을 경우 round-robin 방식으로 나누어진다.
partition은 다수의 Server에 나누어져 운영될 수 있으며 덕분에 Parallel하게 record를 읽고 쓰기 할 수 있다.
Topic log에 들어온 record 처리 순서는 partition별로 보장된다.
Partition ordering
Kafka는 record 처리 순서를 partition안에서만 보장한다.
partition에 들어온 record는 offset을 부여받는다.
offset은 partition에서 record의 순서를 의미한다.
보통 Topic 하나에 여러 개의 partition이 다수의 Server에 나뉘어 구성된다.
Topic의 record를 처리하는 Consumer Group이 나눠어진 Topic의 partition들을 처리한다.
Parallel하게 처리될 수 있는 장점도 있지만 처리 순서 보장되어야 한다면 partition 구성을 신중히 해야 한다.
Partition Replication
Kafka는 Topic을 partition을 복제하여 장애에 대처할 수 있다.
각 partition은 leader와 follwer로 구성된다.(follower는 0일 수도 여러 개일 수도 있다)
leader가 record의 읽고 쓰기를 처리한다.
follower는 leader를 복제해 sync를 맞춘다.
leader가 fail되면 follower가 그 자리를 대처한다.
보통 kafka는 Cluster로 구성되어지며, partition leader 정보는 Cluster에 공유된다.
Zookeeper를 통하여 leader를 선택하고 정보를 공유한다.
ISR
In-Sync Replica
Kafka에서는 partition 복제를 control 하기 위해 ISR를 구성한다.
위에서 설명한 partition의 leader와 다수의 follower를 group으로 구성한 것이 ISR이다.
leader가 fail이 나면 ISR 내 follower 중에서 leader를 맡게 된다.
'MLOps > Kafka' 카테고리의 다른 글
Kafka Broker Log 관리 (0) | 2023.01.10 |
---|---|
Ansible를 통한 Kafka 설치 (0) | 2022.12.18 |
AWS EC2 Kafka 설치 (0) | 2022.11.13 |
Kafka Architecture (0) | 2022.08.14 |
What is kafka (0) | 2022.08.09 |