티스토리 뷰
- 컨슈머가 poll() 을 호출할 때마다 컨슈머 그룹은 카프카에서 저장되어 있는 읽지 않은 메시지를 가져옴
- 컨슈머 그룹의 컨슈머들은 가각의 파티션에 자신이 가져간 메시지의 위치 정보(offset) 을 기록
- 각 파티션에 대해 현재 위치를 업데이트 하는 동작을 commit
- 각 컨슈머 그룹별로 offset 정보를 저장하기 위한 저장소 별도로 사용
- 0.9 이전 버전은 zookeeper 에 저장
- 이후 버전은 카프카 내에 별도의 토픽을 만들어서 저장 → __consumer_offsets
- 컨슈머가 갑자기 다운 또는 새로운 컨슈머가 조인한다면 → 컨슈머 그룹 내에서 rebalance 발생
- 리벨런스 후 각각의 컨슈머는 이전에 처리했던 토픽의 파티션이 아닌 다른 새로운 파티션에 할당 → d컨슈머는 새로운 파티션에 대해 가장 최근 커밋된 오프셋을 읽고 그 이후부터 메시지 가져옴
- 만약 커밋된 오프셋이 컨슈머가 실제 마지막으로 처리한 오프셋보다 작으면 마지막 처리된 오프셋과 커밋된 오프셋 사이의 메시지는 중복으로 처리
- 커밋된 오프셋이 컨슈머가 실제 마지막으로 처리한 오프셋보다 크면 마지막 처리된 오프셋과 커밋된 오프셋 사이의 모든 메시지는 누락
- 자동커밋(auto.commit)
- enable.auto.commit = true (defalut)
'Programming > Open Source' 카테고리의 다른 글
[Kafka] Partition 추가 시 고려사항 (0) | 2021.05.15 |
---|---|
[Kafka] Kafka 구성 시 하드웨어 사양 참고 (0) | 2021.05.15 |
[Kafka] Kafka 성능테스트 (0) | 2021.05.15 |
[Open Source] json-server (0) | 2021.05.15 |
JavaScript checkbox 선택 확인 (5) | 2017.04.18 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 리스트
- Algorithm
- scouter
- Java
- ArrayList
- 초대장
- JDBC
- 티스토리초대장
- Array
- keycloak
- PreparedStatement
- 알고리즘
- string
- 문자열
- 도커
- mysql
- elastic stack
- 자바
- spring
- 미사맛집
- 잠실맛집
- db
- kafka
- 자료구조
- Database
- docker
- 송리단길맛집
- 카프카
- 서울카페
- jenkins
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함