네이버 스케일로 카프카 컨슈머 사용하기
코드너리 | 2023. 03. 18
데이터 인프라
사용된 기술:
개요:
카프카 컨슈머는 많은 경우 잘 동작하는 물건이지만, 쿠버네티스 환경에서 사용하는 것이 그리 쉽지만은 않습니다. 이 세션에서는 카프카 컨슈머를 쿠버네티스 환경에서 사용할 때 주의할 점과 네이버가 어떻게 이 문제를 해결했는지를 살펴봅니다.
목차
1. 카프카 컨슈머: 내부 동작
- 카프카 컨슈머 간략 소개
- 컨슈머 그룹
- 파티션 할당
- 오프셋 커밋
- 파티션 할당 자세히 살펴보기
- 그룹 코디네이터 + 컨슈머 그룹 리더
- 동작 순서: '성급한 할당'
- 할당 알고리즘
- Range Partitioner
- Round Robin Partitioner
- 한계: 클라우드 환경을 감안하지 않고 개발됨
2. 클라우드 환경에서 카프카 컨슈머 사용하기
- 클라우드 환경에서 발생하는 문제 해결하기
- session.timeout.ms 설정
- group.instance.id 설정
- rack.id 설정
- partition.assignment.strategy 설정
- 성급한 할당
- 점진적, 협력적 할당
- 설정 변경 + 무중단 업그레이드하기
- 한계
- 네이버의 클라우드 환경
3. Navercorp Partition Assignor
- 발상
- group.instance.id 자동 인식
- rack.id 자동 인식
- 협력적 할당
- 성능