📌 Kafka란?
pub-sub 모델의 메시지큐 방식 기반, 분산 메시징 시스템
producer는 topic에 이벤트를 게시하고, consumer는 topic을 구독해 이로부터 이벤트를 가져와 처리
- Controller
- 클러스터 관리: 컨트롤러는 클러스터의 메타데이터를 관리하고, 파티션과 리플리카의 상태를 모니터링
- 리더 선출: 컨트롤러는 파티션의 리더 브로커를 선출
- 파티션 재할당: 필요에 따라 파티션을 다른 브로커로 재할당
- Broker
- = Kafka 서버
- 메시지 저장 및 전송: 클라이언트로부터 데이터를 받아 적절한 파티션에 저장하고, 소비자에게 메시지를 전달
- 브로커 간 통신: 다른 브로커와 통신하여 데이터 복제와 같은 작업을 수행
- replication-factor
-
-
- Kafka 클러스터 broker 서버들에 총 몇개 topic 있을건지? → 안정성
- ISR (In Sync Replication)
- partitions
- 개별 broker 당 몇개의 통로 ? → 병렬처리
-
📌 이미지
https://hub.docker.com/r/apache/kafka
- Kafka 3.0.0부터 KRaft모드를 지원 해서 Zookeeper 없이 Kafka를 동작
- https://www.c-sharpcorner.com/article/apache-kafka-without-zookeeper/
- https://kafka.apache.org/documentation/#kraft
- https://kafka.apache.org/documentation/#zk_depr
📌 Kafka Connector
Debezium
https://debezium.io/documentation/reference/stable/connectors/mariadb.html
https://code-run.tistory.com/39
Change Data Capture(CDC) 도구
데이터베이스의 변화를 실시간으로 감지하여 Kafka와 같은 다른 시스템으로 스트리밍하는 역할
참고
https://gruuuuu.github.io/integration/kafka-concept/
https://always-kimkim.tistory.com/entry/kafka101-message-topic-partition
https://velog.io/@holicme7/Apache-Kafka-카프카란-무엇인가
'DevOps' 카테고리의 다른 글
[ArgoCD] ArgoCD Image Updater 적용기 (0) | 2024.12.10 |
---|---|
[ArgoCD][트러블 슈팅] ArgoCD path 설정 (0) | 2024.12.05 |
[CI/CD] Github Actions와 ArgoCD를 활용한 CI/CD (0) | 2024.11.05 |
[Kafka] Docker로 Kafka 구축 (0) | 2024.08.19 |
Docker로 MariaDB 연결, 웹에서 DB 내용 띄우기 (0) | 2024.08.19 |