Kafka 추가 분석

jingyu·2022년 7월 4일
0

MSA

목록 보기
3/5

Kafka에 대해 궁금한 것 몇가지

1.Leader 선출 방법

• To avoid this imbalance, Kafka has a notion of preferred replicas.
• If the list of replicas for a partition is 1,5,9 then node 1 is preferred as the leader to either node 5 or 9 because it is earlier in the replica list.
• 출처 : https://kafka.apache.org/documentation/#basic_ops_leader_balancing

2.Zookeeper를 통한 리더 선출 방법

• Sequential하게 정렬된 서버 목록 중 가장 작은 Sequential을 가진 서버를 리더로 선정
• 출처: https://www.pymoon.com/entry/%EC%A3%BC%ED%82%A4%ED%8D%BC-%EC%A3%BC%ED%82%A4%ED%8D%BC%EB%A5%BC-%ED%86%B5%ED%95%9C-%EB%A6%AC%EB%8D%94-%EC%84%A0%EC%B6%9C

3.복제 파티션을 수동으로 변경 가능

• JSON 파일의 "replicas: 속성에서 가장 첫 번째 브로커에 위치한 복제 파티션이 리더 역할을 담당합니다.
• 아래 JSON 파일을 예를 들면, 0번 파티션은 1번 브로커에 위치한 복제 파티션이 리더 역할을 담당하게 됩니다. 이처럼 설정을 통해 미리 지정된 리더 파티션을 preferred leader라고 합니다.
• 출처: https://always-kimkim.tistory.com/entry/카프카-운영-Preferred-Replica-Election
// 파티션 설정 파일 예시 (json 파일)
{ "version":1,
"partitions":[
{"topic":"test-topic", "partition":0, "replicas":[1,2,3]},
{"topic":"test-topic", "partition":1, "replicas":[2,1,3]},
{"topic":"test-topic", "partition":2, "replicas":[3,1,2]}
]
}

4.모든 Broker가 Down되었을때 리더 선택 방법

• 1. 마지막까지 leader였던 broker가 up이 되고 다시 leader가 될 때까지 기다린다.(모든 데이터를 가지고 있을 가능성이 높다)
• 2. ISR(In Sync Replica)과 상관없이 누구라도 가장 빨리 up이 되는 topic이 leader가 된다.(데이터 손실이 되더라도 장애 대응이 빠르다), default 설정

5.Broker 추가시 파티션에 대한 Rebalancing 기능은 없음

• Kafka를 Scale out 하면 broker가 하나 늘어나지만 아래와 같이 기존의 Topic Partition이 분배가 되지 않은 상태가 된다.

• 따라서 Producer와 Consumer가 송/수신하는 부하를 나눠서 받지 못하기 때문에 Scale out 효과가 거의 없는 상태이다.
• 이때, 아래와 같이 Topic Partition을 강제로 새 broker에 분산해주면 데이터 송/수신 부하가 분산된다.

• 출처 : *Kafka Topic reassignment 가이드

profile
내일을 향해 쏴라!

0개의 댓글