본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
https://bit.ly/4hTSJNB
I. 학습 인증샷 4장 이상 포함
1. 공부시작: 날짜, 시각 다 나오도록
2. 공부 종료: 날짜 시각 다 나오도록
3. 1개 클립 수강 (강의장 목록 캡쳐, 수강화면이 보이지 않도록) 1장
4. 학습 인증샷 1장(필기 촬영이나 작업물 촬영)
II. 학습 후기 700자 이상 (공백 제외)
지난 시간에 배웠던 여러 방식중에 Sticky 에 대해 더 집중적으로 공부하는 파트이다.
요약
Consumer Rebalancing Process : 시간 흐름에 따른 Consumer Rebalance 과정
- Consumer들이 JoinGroup 요청을 Group Coordinator 에 보내면서 리밸런싱이 시작
- JoinGroup의 응답이 Consumer들에 전송되고(Group Leader는 Consumer들 정보를 수신)
- 모든 구성원은 Broker에 SyncGroup 요청을 보낸다
- Group Leader는 각 Consumer의 Partition 할당을 계산한다
- 계산 결과를 Group Coordinator에게 전송한다
- Broker는 SyncGroup 응답에서 각 Consumer별 Partion 할당을 보낸다.
Eager Rebalancing 프로토콜: 오랫동안 사용되었던 방식 →최대한 단순하게 유지하기 위해 만들어짐
- 각 구성원은 JoinGroup 요청을 보내고 재조정에 참여하기 전에 소유한 모든 Partition을 취소해야 함
- 안전면에서는 좋지만 그룹의 구성원이 재조정 기간 동안 작업을 수행할 수 없는 단점
- "Stop-the-World"프로토콜
Incremental Cooperative Rebalancing Protocol
- 이전 Eager Rebalancing 프로토콜 보다 발전한 방식
- Revoke 할 Partition만 Revoke 하면 되지 않는가!!!
- 이상적인 Consumer Rebalancing 프로토콜
- 문제점 : Consumer는 자신의 파티션중 어느 것이 다른 곳으로 재할당되어야 하는지 알지 못함
Cooperative Sticky Assignor
- Incremental Cooperative Rebalancing Protocol의 문제점 해결 : Rebalancing 2번 수행
- JoinGroup 요청을 보내면서 시작하지만, 소유한 모든 Partition을 보유하고, 그 정보를 Group Coordinator에게 보냄
- Group Leader는 원하는 대로 Consumer에 Partition을 할당하지만, 소유권을 이전하는 Partition들만 취소함
- Partition을 취소한 구성원은 그룹에 ReJoin하여 취소된 Partition을 할당할 수 있도록 두 번째 재조정을 트리거
- Basic Cooperative Rebalancing Protocol: Apache Kafka 2.4 에서 도입
- Incremental Cooperative Rebalancing Protocol: Apache Kafka 2.5 에서 도입
- 빈번하게 Rebalancing되는 상황이거나
- 스케일 인/아웃으로 인한 다운타임이 우려가 된다면,
- 최신 버전의 Kafka(2.5 이상)기반으로 사용하는 것을 권장
Eager Rebalancing 프로토콜에 대해 배웠을 때는 좀 당황 스러웠다. 설명이 가장 단순하고 안전한 방식이라고 하는데 ... 모든 파티션을 취소하고 다시 할당한다니, 비효율의 끝판왕이 아닌가? 싶었다.
"Stop-the-World" 문제 때문에 실제 운영 환경에서는 문제가 될 수 있다는 걸 보고 걍 머리속에 지워버렸다..
바로 뒤의 Incremental Cooperative Rebalancing Protocol을 배웠을 때 정말 이거다 싶었다
필요한 파티션만 Revoke한다~ 얼마나 효율적인가.
하지만 위의 요약내용대로.. 치명적인 이슈가 있었고 그걸 해결한 것이 오늘 주제인 Cooperative Sticky Assignor인 것이다.
처음에는 리밸런싱 2개로 위 치명적인 이슈가 해결된다는게 무슨 소린지 이해가 안되었는데..
강사님이 설명을 너무 잘해주셔ㅓㅆ다.. 특히 위 필기 캡처에 잠깐 나온
Consumer A, B, C의 예시는 정말 좋은 예시이다.
또한 놀라웠던 부분은 Kafka가 계속해서 발전하고 있다는 것이다.
Apache Kafka 2.4, 2.5 버전에서 이런 새로운 기능들이 추가되었다는 걸 보고,
기술이 얼마나 빠르게 발전하는지 실감했고, 사실 지금은 얼마나 좋은 기능이 나왔을지 또 걱정도 된다..
늘 그렇지만 실무적 궁금증은 늘 목마르다.
Cooperative Sticky Assignor를 사용할 때 실제로 성능이 얼마나 향상되는지 수치로 나오면 좋을텐데..
그리고 이런 복잡한 리밸런싱 과정에서 발생할 수 있는 에러 상황은 어떻게 처리하는지도 알려주었으면 좋겠는데..
그래도 전체적으로 봤을때 이 강의는 나에게 큰 도움을 주고 있다.
다 돌아다녀도 이렇게 깊은 내용을 이렇게 좋은 예제로 설명하는 것은 처음이다.
늘 말했지만 패캠 강의답지 않게... 정말 잘만든 강의 같다...
물론 어렵지만.... ㅋ
계속 따라가다보면... 뭔가 배울 수 있을 듯
'패캠챌린지 > Kafka EcoSystem - 진행중' 카테고리의 다른 글
패스트캠퍼스 환급챌린지 19일차 : 한번에 끝내는 KafkaEcosystem 강의 후기 (0) | 2025.03.23 |
---|---|
패스트캠퍼스 환급챌린지 18일차 : 한번에 끝내는 KafkaEcosystem 강의 후기 (0) | 2025.03.22 |
패스트캠퍼스 환급챌린지 16일차 : 한번에 끝내는 KafkaEcosystem 강의 후기 (0) | 2025.03.20 |
패스트캠퍼스 환급챌린지 15일차 : 한번에 끝내는 KafkaEcosystem 강의 후기 (0) | 2025.03.19 |
패스트캠퍼스 환급챌린지 14일차 : 한번에 끝내는 KafkaEcosystem 강의 후기 (0) | 2025.03.18 |