본문 바로가기
카테고리 없음

consumer group

producer 는 여러개의 partioning 되어 있는 topic으로 message 를 전송 하기 때문에 다른 message system 보다 message를 빠르게 처리 할 수 있다.

하지만 분할 되어 있는 topic을 가져 올때는 1개의 cosumer가 처리 한다면 pull하는 속도가 느릴 수 밖에 없다.


그래서 kafka에서는 cosumer group 을 통하여 각각 partition에 대하여 cousmer를 지정 하여 그룹화 함으로 빠른 속도를 보장 함과 함께 데이터 손실을 방지 할 수 있도록 한다.
아래 그림 처럼 3개의  partion에 대하여 cosumer group 에 2개의 consumer가 동작 하여 분산하여 데이터를 수신 할 수 있다.
이때 1개의 partition에 대하여 1개의 cosumer만 지정 해서 보낼 수 있다.
만약 3개의 partition에 대하여 4개의 consumer 가 있다면 1개의 cosumer는 대기 하게 되어 낭비가 된다.
만약 , 한개의 topic에 대하여 한 consumer group 에서  처리하던것을 ,동일한 정보를 다른 쪽에서 사용 하기 위해서 다른  cosumer group을 추가 하여 동일한 데이터에 대하여 
1개의 message system에서 가져 와서 활용 하는 것도 kafka의 장점이라고 할 수 있다.




반응형