반응형
카프카인액션 6장 중에..
빅데이터 개념에 익숙하거나 이전에 하둡으로 작업해 본 적이 있는 사람들은 카프카를 알아가면서 랙 어웨어니스 rack awareness(머신이 호스트되는 물리적 서버 렉을 인지하는 것)나 파티션 partition 같은 친숙한 용어를 볼 수 있다. 카프카에는 파티션의 에플라카가 별도의 랙에 물리적으로 존재하도록 하는 랙 어웨어니스 기능이 있다.... 자체 카프카 클러스터를 설정할 때는 또 다른 클러스터인 어파치 주키퍼를 알고 있어야 한다.
Kafka rack-awareness
- 1개의 Rack에 다수의 브로커를 집중 하는 것은 위험하다
- 다수의 Rack에 분산하여 브로커 옵션(broker.rack) 설정 및 배치한다
- 파티션 할당 및 레플리케이션 동작시 특정 브로커에 몰리는 현상을 방지한다
설정하는법
1️⃣ KafkaClusterClass에서 설정
- 이 모델을 사용하면, 해당 클래스에서 생성된 모든 클러스터에 랙 인식 기능이 활성화
kind: KafkaClusterClass
spec:
provisioner:
cfk:
rackAssignment:
nodeLabels:
- topology.kubernetes.io/zone
2️⃣ KafkaCluster에서 설정
- 이 모델을 사용하면 개별 Kafka 클러스터 단위로 랙 인식을 설정
- 각 클러스터마다 다른 레이블 요구 사항이 있는 경우, 이 방법을 사용하는 것이 권장
kind: KafkaCluster
spec:
rackAssignment:
nodeLabels:
- topology.kubernetes.io/zone
네이버의 파티션 할당 전략: RackAwareRangeAssignor
네이버는 기본 제공되는 파티션 할당 전략이 랙 정보를 충분히 고려하지 않는다는 문제를 해결하기 위해 RackAwareRangeAssignor를 개발하였습니다. 이 전략은 다음과 같은 단계를 통해 파티션을 할당
- 리더 레플리카의 랙에 따른 할당: 컨슈머와 동일한 랙에 위치한 리더 레플리카의 파티션을 우선적으로 할당
- 팔로워 레플리카의 랙에 따른 할당: 동일한 랙에 리더 레플리카가 없을 경우, 동일한 랙에 위치한 팔로워 레플리카의 파티션을 할당
- 남은 파티션의 순차적 할당: 위의 두 단계를 통해 할당되지 않은 파티션을 순차적으로 할당
https://docs.confluent.io/operator/current/co-configure-rack-awareness.html
https://joohs0505.tistory.com/235
Deview 2023 | 네이버스케일로카프카사용하기
반응형
'개발 > kafka' 카테고리의 다른 글
역압(back pressure)을 처리하는 애플리케이션 (kafka/spark) (0) | 2025.01.18 |
---|---|
[kafka] producer interceptor (0) | 2025.01.12 |
[kafka] 소비자 그룹 (Consumer Group) (0) | 2025.01.05 |
[kafka] log compaction | log tail | log head (1) | 2025.01.04 |
[kafka] producer message key = 메시지 코디네이트(Message Coordinate) (1) | 2025.01.04 |