컨슈머 그룹은 카프카의 개별 컨슈머 인스턴스들을 하나로 묶는 논리적 그룹 단위이다.
특정 컨슈머에 문제가 생기는 경우 동일 그룹 내의 다른 컨슈머가 계속해서 파티션에서 데이터를 읽을 수 있다.
예를 들어 위 그림에서 컨슈머 1에 장애가 발생하더라도, 동일 컨슈머 그룹 내의 2,3,4 컨슈머가 계속해서 읽을 수 있도록 리밸런싱이 된다. 카프카는 컨슈머 그룹 단위로 offset을 관리하기 때문이다.
아직 offset을 모르시는 분들을 위해 먼저 offset을 간단히 정리하면 아래와 같다.
위에 언급했던 것처럼 카프카는 컨슈머 그룹 단위로 offset을 관리한다.
이 그림에서 토픽 T1의 데이터를 컨슈머 그룹 G1과 G2에서 구독하고 있다.
토픽 T1에 들어있는 데이터는 G1과 G2가 각각 따로 수신하게 된다. G1이 수신했다고, G2가 수신하지 못하는 것이 아니다.
예를 들어 광고 관련 플랫폼에서 사용자의 클릭 정보를 제공하는 토픽이 있다고 가정해보자.
이 클릭 정보는 리포트 어플리케이션에서도 사용하고, 과금 애플리케이션에서도 사용한다.
리포트 어플리케이션에서 클릭 A의 정보를 수신했다고, 과금 애플리케이션에서 클릭 A의 정보를 받지 못하면 문제가 될 것이다. (리포트에는 집계되지만 과금에는 집계되지 않는..)
이럴 때 컨슈머 그룹을 리포트 컨슈머 그룹, 과금 컨슈머 그룹으로 분리해서 각각 따로 수신하는 것이다.
카프카(Kafka)의 이해
개발자 노트
devtimes.com
Kafka 운영자가 말하는 Kafka Consumer Group | Popit
이번에는 Consumer Group이라는 주제를 가지고 설명하려고 합니다. 이 내용 역시 제가 처음 카프카를 접했을때, 정말 이해가 안되고 어려웠던 부분이었습니다. 컨슈머 그룹에 대해 국내 자료들을 검색했었는데, 안타깝게도 제가 이해하는데 도움이 될만한 글을 찾지 못하였습니다. 그래서, 제가 카프카를 처음 접하시는 분들이 컨슈머 그룹에 대한 개념을 잘 이해하실 수 있도록 간단한 예제와 그림을 추가하여 설명을 진행하도록 하겠습니다.
www.popit.kr
Kafka Consumer Architecture - Consumer Groups and Subscriptions - DZone Big Data
This installment in the Kafka series covers consumer architecture, consumer groups, how record processing is shared, and failover for Kafka consumers.
dzone.com
[flutter] 프로젝트 설정 & 기본 앱 만들어보기 (0) | 2020.06.07 |
---|---|
[android] AMD CPU에서 android emulator 설치시 4294967201 오류 해결하기 (3) | 2020.06.07 |
[kafka] consumer와 partition 의 이상적인 비율 (0) | 2020.03.31 |
[algorithm] LinkedHashMap - 순서를 유지하는 HashMap (0) | 2020.02.22 |
[algorithm] 순열(Permutation) 정리 (0) | 2020.01.26 |
댓글 영역