728x90
반응형
Kafka 클러스터 관리는 안정성과 확장성을 보장하기 위해 필수적인 작업입니다.
1. Kafka 클러스터의 구성
- Broker:
- 클러스터의 핵심 구성 요소로, 각 Broker는 고유 ID를 가짐.
- 여러 Broker로 구성된 클러스터는 데이터 복제 및 분산 처리를 지원.
- ZooKeeper:
- 기존 Kafka 클러스터에서 메타데이터 관리 및 리더 선출에 사용.
- Kafka 2.8부터 KRaft(Kafka Raft)를 도입해 ZooKeeper 의존도를 줄이는 중.
- Topic과 Partition:
- Topic은 논리적 데이터 스트림 단위.
- Partition은 Topic을 분할하여 병렬 처리가 가능하도록 설계.
2. 클러스터 확장
2.1 Broker 추가
- 새 Broker를 클러스터에 추가하면 Kafka가 자동으로 이를 인식.
- 데이터를 새 Broker에 분산하려면 리밸런싱(Rebalancing) 과정이 필요.
- 리밸런싱 명령:
kafka-reassign-partitions.sh --zookeeper <zookeeper> --reassignment-json-file <file> --execute
- 리밸런싱 명령:
- 주의: 리밸런싱은 성능에 영향을 미칠 수 있으므로 비활성 시간에 수행 권장.
2.2 Partition 확장
- Partition 개수 증가 가능. 하지만 기존 데이터는 재분배되지 않으므로, 소비자는 새로운 Partition 데이터를 읽기 위해 업데이트 필요.
- 확장 명령:
kafka-topics.sh --alter --topic <topic_name> --partitions <new_count> --zookeeper <zookeeper>
3. 데이터 복제와 복구
3.1 Replication Factor 관리
- 각 Partition은 복제본(Replica)을 가짐.
- replication.factor는 복제본 개수를 의미하며, 3 이상 설정 권장(HA 보장).
- 복제본 간의 ISR(In-Sync Replica) 상태를 유지.
- ISR은 리더와 동기화된 Replica를 의미.
- 복제본 불일치 시, 리플리카 상태 점검 명령:
kafka-topics.sh --describe --topic <topic_name> --zookeeper <zookeeper>
3.2 Broker 장애 복구
- 장애가 발생한 Broker의 리더 Partition은 다른 ISR로 자동 전환.
- 장기간 장애 시, ISR에서 제외된 Broker 복구 명령:
kafka-replica-verification.sh --zookeeper <zookeeper>
4. 데이터 유지 및 관리
4.1 Retention 정책
- 메시지 보존 기간:
- 메시지 보관 시간(log.retention.hours) 설정.
- 디스크 기반 보존:
- 저장 용량 기반(log.retention.bytes)으로 데이터 삭제.
4.2 로그 세그먼트 관리
- 데이터는 로그 세그먼트 단위로 관리.
- 오래된 세그먼트는 자동 삭제 또는 압축.
- 압축 활성화:
compression.type=snappy log.cleanup.policy=compact
5. 클러스터 모니터링
- Kafka 메트릭 수집 도구:
- Prometheus, Grafana, Kafka Manager.
- 중요 지표:
- ISR 크기.
- Broker 네트워크 I/O.
- 오프셋 래그(Offset Lag): Consumer와 Producer 간 지연 확인.
- Kafka Broker 상태 확인 명령:
kafka-broker-api-versions.sh --bootstrap-server <broker_host:port>
6. Kafka 클러스터 최적화
6.1 데이터 분배 최적화
- Partition 분배가 특정 Broker에 편향되지 않도록 리밸런싱 수행.
- 데이터 중심으로 Topic 및 Partition 설계.
6.2 리소스 사용량 관리
- JVM 메모리 최적화(Xms, Xmx).
- Broker에 충분한 디스크 용량 확보.
- I/O 성능을 위해 SSD 사용 권장.
>> 결론
Kafka 클러스터 관리는 신중한 계획과 정기적인 모니터링이 필수입니다.
728x90
반응형
'※ IT관련' 카테고리의 다른 글
"오픈소스 데이터 시각화의 힘, Grafana 제대로 배우기" (0) | 2025.01.13 |
---|---|
"Jenkins 시스템 모니터링: 안정적 운영을 위한 핵심 전략" (0) | 2025.01.13 |
"서비스 다운타임 제로! 스마트한 부하 분산기 설정 비법" (1) | 2025.01.13 |
"A/B 테스트로 숨은 성과를 발견하는 방법, 지금 시작하세요!" (6) | 2025.01.12 |
"MySQL, PostgreSQL, SQL Server, GCP Cloud SQL에서 쉽게 관리하기" (2) | 2025.01.12 |