리더 파티션 선출 규칙에 관한 질문
69
16 asked
![]()
강사님, 안녕하세요. 강의 잘듣고 있습니다!
실습을 하고 있는데 궁금한 점이 있어서 글을 남깁니다.
혹시 파티션 중 리더 replica를 선출하는 규칙이 있는지 궁금합니다.
예를들면 파티션에 1,2,3 번 replica가 있었고 리더였던 1번 replica가 중단됐을 경우 2번, 3번 replica 중 어떤 것이 리더가 되는지 궁금합니다.
시간되실때 답변 꼭 부탁드립니다. 감사합니다!
Answer 2
1
안녕하세요 ! 질문 너무 잘해주셨어요 !
질문해 주신 내용에 대해 답변드려볼게요 ~
"예를들면 파티션에 1,2,3 번 replica가 있었고 리더였던 1번 replica가 중단됐을 경우 2번, 3번 replica 중 어떤 것이 리더가 되는지 궁금합니다."
-> 리더 파티션 선출 규칙과 관련해서는 기본적으로 ISR(In-Sync Replicas) 목록에서 리더가 선출돼요 !
이미지에서 보시면 Replicas: 3,1,2 이고 Isr: 1,2,3 으로 나와있는데요, 리더 선출 우선순위는 Replicas 목록의 순서를 따라요 ~
즉 Replicas에 나열된 순서대로 ISR에 포함된 replica가 리더로 선출돼요!
예를 들어 질문해주신 상황처럼 Replicas가 1,2,3 순서이고 1번 리더가 중단됐다면, Replicas 목록에서 1번 다음 순서인 2번이 ISR에 포함되어 있다면 2번이 새 리더로 선출돼요 !
만약 2번도 ISR에서 빠져있다면 3번이 리더가 되는 식이에요 ~
1번 노드에 장애가 발생했을 때 Leader: 2로 바뀌는 걸 확인하셨을 텐데 이게 바로 그 원리로 동작한 거죠 :)
추가로 궁금하신 점 있으시면 언제든 편하게 질문 남겨주세요~~
1
안녕하세요, 인프런 AI 인턴입니다. 쿠카이든님.
Kafka에서 파티션의 리더를 선출하는 규칙에 대해서 궁금하신 점에 대해 답변드리겠습니다. Kafka는 고가용성과 안정적인 메시지 전달을 위해 여러 개의 복제본(Replicas)을 유지하며, 그 중 하나가 리더로 선출됩니다. 리더 파티션은 클러스터 내 파티션의 주 복제본으로 모든 읽기 및 쓰기 요청을 처리합니다.
리더 파티션 선출 규칙
최우선 순위 복제본: Kafka는 일반적으로 가장 먼저 동기화된 복제본 중에서 숫자가 가장 작은 것을 리더로 선정합니다. 예를 들어, 복제본 리스트가 [3, 1, 2]일 경우, 리더는 동기화된 상태에서 가능한 가장 작은 숫자의 복제본입니다.
ISR(In-Sync Replicas) 목록: 리더는 항상 ISR 목록에서 선출됩니다. 이 목록에는 현재 리더와 완전히 동기화된 복제본들만 포함됩니다. 따라서 복제본 3이 중단될 경우, ISR 목록의 남은 복제본 중 하나가 리더가 됩니다.
자동 리밸런싱: 리더를 다시 선출할 때, Kafka는 자동으로 리밸런싱 과정을 통해 얼마나 많은 파티션이 손실되지 않았는지를 계산하고 새로운 리더를 선출합니다.
리더 선출은 Kafka의 안정성과 성능을 보장하는 중요한 메커니즘입니다. 더 많은 정보는 관련 문서를 참고하거나 아래 관련 질문도 살펴보시면 좋습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
2. Kafka 설치 파일 다운받기 404 Not Found 오류 관련
0
59
2
UserSignedUpEventConsumer 에서 로그 DB 저장 문의
0
51
2
kafka 실패 후 재시도 DLT 소비 무한으로 하는 현상이 발생합니다
1
141
2
질문드립니다.
0
53
2
잘못된 이메일 주소로 인해 발송 실패 코드
0
107
3
카프카 서버 관련 질문입니다.
0
89
2
선생님 질문이 있습니다. 왜 바로 aws 설치 하시는지 궁금합니다.
0
98
2
Kafka 음성메세지 브로커로도 적합한가요?
0
78
2
재시도조차 실패한 메시지 사후 처리하기
1
110
2
retry 시 동작과정 질문
0
119
2
JsonSerializer & JsonDeserializer
0
73
2
auto.create.topics.enable=false 설정
0
101
2
email 발송 로직 관련
0
69
2
concurrency 설정 + 같은 groupId 내에 consumer 여러개
0
74
2
concurrency 동작 안됨
0
72
3
컨슈머 서버 점진적 배포 시나리오
0
63
2
Connection -1
0
58
2
적정 파티션 개수 계산하는 방법 질문드립니다
0
126
2
섹션5 33 질문드립니다
0
47
1
aws아닌 도커로는 안되나요?
0
102
2
파티션 증가 질문드립니다
0
76
2
섹션7 51 컨슈머서버 무한 리로드?
0
141
4
섹션6 43 질문드립니다
0
57
3
kafka [37강의]
0
64
2

