Kafka 학습 가이드
Apache Kafka는 분산 스트리밍 플랫폼으로, 대용량 실시간 데이터 처리를 위한 핵심 기술입니다.
목차
1. 기초 개념
2. 핵심 아키텍처
- Broker와 클러스터
- Topic과 Partition
- Replica와 Leader-Follower 구조
- Zookeeper의 역할 (Kafka 2.8 이전)
- KRaft 모드 (Zookeeper 제거)
3. Producer
- Producer 기본 개념
- 메시지 전송 방식 (Fire-and-forget, Sync, Async)
- Partitioner와 메시지 분배 전략
- Producer 주요 설정
- acks, retries, batch.size, linger.ms
- compression.type, max.in.flight.requests.per.connection
- Idempotent Producer (멱등성 프로듀서)
- Transactional Producer (트랜잭션)
4. Consumer
- Consumer 기본 개념
- Consumer Group과 Rebalancing
- Offset 관리
- Auto Commit vs Manual Commit
- Offset 저장 위치
- Consumer 주요 설정
- fetch.min.bytes, fetch.max.wait.ms
- max.poll.records, session.timeout.ms
- heartbeat.interval.ms
- Consumer Lag 모니터링
5. 메시지 전달 보장
6. 스토리지와 성능
- Log Segment와 파일 구조
- Page Cache 활용
- Zero Copy
- Batch Processing
- Compression
- Log Retention 정책
- Log Compaction
7. 클러스터 관리
- Broker 설정
- Replication Factor 설정
- ISR (In-Sync Replicas)
- Broker 추가 및 제거
- Partition Reassignment
- Leader Election
8. 보안
- Authentication (SASL, SSL)
- Authorization (ACL)
- Encryption (전송 중 암호화, 저장 암호화)
- Quota 관리
9. Kafka Streams
10. Kafka Connect
11. 모니터링과 운영
12. 실전 패턴과 Best Practices
- 메시지 키 설계
- Partition 수 결정
- Replication Factor 결정
- Consumer Group 설계
- Schema 관리 (Schema Registry)
- Dead Letter Queue 패턴
- Error Handling 전략
13. 고급 주제
- Multi-tenancy
- Cross-cluster Replication (MirrorMaker 2)
- Tiered Storage
- Kafka Performance Tuning
- Kafka vs 다른 메시징 시스템
댓글 (0)