| 구성 요소 | 역할 |
|---|---|
| Producer | 데이터 생성 및 Kafka 전송, 메시지 키 기반 파티셔닝 전략 수행 |
| Consumer | Topic 데이터 수집 및 처리, Offset을 활용한 읽기 위치 관리 |
| Broker | 데이터를 저장하는 서버 노드 |
| Cluster | 고가용성을 위한 분산 클러스터 |
| Topic | 논리적 데이터 분류 단위 |
| Partition | 병렬 분산 처리를 위한 단위 |
Replication Latency 대응
fetch.min.bytes를 키워 한 번에 더 많은 데이터를 가져오면 밀린 데이터를 빠르게 비울 수 있다.
compression.type도 설정해 볼 수 있다. CPU 사용량은 늘어나지만 네트워크 부하를 줄여 Latency 개선에 도움을 준다.Data Skew (데이터 쏠림)
키가 분산되는 원리
murmur2 해시 % 파티션 수)을 거쳐 랜덤해 보이는 숫자로 변환한 뒤 골고루 뿌려진다.핫 파티션(Hot Partition) 해결
키가 없으면?
파티션을 갑자기 늘리면?
Consumer 수와 파티션 수
리밸런싱 다운타임 줄이기
session.timeout.ms나 heartbeat 주기를 조절해 장애 감지를 빠르게 하고, max.poll.interval.ms도 중요하다.session.timeout.ms를 너무 짧게 잡으면 일시적인 GC·네트워크 지연에도 불필요한 리밸런싱(false rebalance)이 발생해 오히려 다운타임이 늘 수 있으니 균형이 필요하다.| 도구 | 특징 |
|---|---|
| Prometheus & Grafana | 오픈소스 기반 데이터 시각화 및 알람 도구 |
| Confluent Control Center | 엔터프라이즈급 통합 관리 및 UI 도구 |
| Burrow | 컨슈머 랙(Consumer Lag) 특화 모니터링 |
| Datadog / New Relic | APM 연계형 클라우드 통합 모니터링 서비스 |
Prometheus & Grafana 동작 방식 Prometheus는 Kafka 브로커나 JMX Exporter로부터 메트릭을 주기적으로 Pull 방식으로 수집하고 시계열 데이터베이스(TSDB)에 저장한다. Grafana는 Prometheus를 데이터 소스로 연결하여, 저장된 데이터를 쿼리(PromQL)로 불러와 그래프·차트 형태의 대시보드로 시각화한다. 즉, Prometheus는 데이터의 수집과 보관을, Grafana는 데이터의 표현과 분석 인터페이스를 담당한다.
| 지표 | 의미 | 중요성 |
|---|---|---|
| Consumer Lag | 데이터 처리 지연 정도 | Producer가 보낸 메시지가 처리되기까지의 지연. 계속 늘어나면 컨슈머 처리 성능 문제의 가장 빠른 신호 |
| Throughput | 초당 메시지 유입·처리량(TPS) | 현재 부하를 실시간 파악하고 스케일 아웃 결정의 근거 |
| Broker Disk Usage | 저장 공간 상태 및 Retention 정책 | 디스크가 차면 풀 장애로 전체 시스템 중단 위험, 상시 모니터링 필요 |
| Under-replicated Partitions | 복제가 정상적이지 않은 파티션 유무 | 0보다 크면 브로커 장애 가능성 높음, 장애 대응 최우선 순위 |