본문 바로가기
IT/Knowledge

[kafka] 컨슈머 그룹이란?

by 성준하이 2024. 2. 11.
반응형

이전 포스팅에서 kafka에 대해서 다룬 글이 있다.

kafka 에 대한 설명은 참고 포스팅을 먼저 참고 바란다.

 

kafka를 사용하다보니 group 이라는 개념이 등장하였다.

기존에는 그냥 단순 push하고 consume에서는 받아오는게 전부였는데

group이라는게 생소해서 정리해보려고 한다.

 

컨슈머 그룹(Consumer Group)

카프라의 개별 컨슈머 인스턴스 들을 하나로 묶는 논리적 그룹 단위 이다.

 

사용하는 이유는 

1. 장애 내성 -> 특정 컨슈머에 문제가 생길경우 동일 그룹의 다른 컨슈머가 계속해서 파티션에서 데이터를 읽을수 있다.

2. offset 관리

등이 있다.

 

아래 그림을 보면 이해가 갈것이다.

 

단일 그룹일 경우엔 

 

이렇게 하나의 컨슈머에서 모든 작업을 이루어진다.

 

만약 여러개의 그룹이 있다면

 

이렇게 메세지를 나눠갖게 된다.

이러다가 하나의 consumer 가 문제 생기면

이렇게 그룹 내에서 다른 컨슈머가 해당 메세지를 대신 받아주게 된다.

 

주의점

 

처음엔 그룹을 신경 안쓰고 각각 토픽id별로 서비스를 만들었고, 그룹아이디는 동일하게 묶었었다.

그러니 모든 메세지를 수신하지 못하였다.

확인해보니 서로 다른 서비스를 제공하는 컨슈머들이 하나의 그룹에 묶여있기에

정상적인 로직을 갖고있는 컨슈머가 메세지를 consume 할 경우에만 정상 작동 하였다.

 


참고 포스팅

https://thenicesj.tistory.com/259

 

Apache Kafka 란?

Apache Kafka 에 대해서 알아보려고 한다. 카프카(Kafka)는 2011년 미국 링크드인(Linkedin)에서 개발했다. 카프카 이전에는 다음 그림과 같이 모든 것들이 서로 연관되어서 결합력이 높았다. 하지만 결합

thenicesj.tistory.com

 

반응형

'IT > Knowledge' 카테고리의 다른 글

Kafka 의 Acknowledgement (AcksMode)  (13) 2024.02.23
Trigger 란? (트리거)  (27) 2024.02.16
샤딩(Sharding) 이란?  (21) 2024.02.04
파티셔닝 이란?  (22) 2024.01.24
Dispatcher Servlet 이란? (feat. FrontController 패턴)  (25) 2024.01.18

댓글