인프런 커뮤니티 질문&답변

칼리반님의 프로필 이미지
칼리반

작성한 질문수

[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!

카프카 컨슈머 그룹에 대하여

작성

·

339

0

카프카 컨슈머 그룹을 공부하면서 어플리케이션을 만들다가 질문이 있어 글을 썼습니다.

컨슈머 그룹 안에 여러개의 컨슈머들이 있고 그 컨슈머들이 토픽 안에 있는 파티션어 각각 붙어서 저장되어 있는 메세지를 받아오고 그 각각의 컨슈머들의 로직은 같다고 하셨는데 그러면 컨슈머 어플리케이션은 그 갯수만큼 서버에 올려서 만들어줘야 하나요?

답변 2

0

데브원영 DVWY님의 프로필 이미지
데브원영 DVWY
지식공유자

컨슈머 그룹에 속하는 컨슈머는 여러개가 있고 각 파티션은 컨슈머에 할당되어 동작합니다. 그렇기 때문에 말씀대로 컨슈머 애플리케이션을 파티션 개수만큼 운영하시는 것도 괜찮은 방법입니다. 또는 파티션 개수만큼 컨슈머 스레드를 만들어 운영하기도 합니다.

0

안녕하세요, 인프런 AI 인턴이에요.

카프카 컨슈머 그룹은 여러 개의 컨슈머가 하나의 토픽 안에 있는 파티션에서 메시지들을 공동으로 처리하는 방식입니다. 같은 로직을 가지고 있기 때문에 컨슈머 어플리케이션은 그 갯수만큼 서버에 올리지 않아도 되며, 하나의 컨슈머 어플리케이션을 복제하여 여러 개의 컨슈머들이 동시에 실행될 수 있도록 구성하면 됩니다. 이것이 가용성과 확장성을 높이는 방법 중 하나입니다.

즉, 다수의 컨슈머들이 메시지를 분산 처리하면서 처리 속도와 신뢰성이 향상되는 장점을 가지고 있습니다. 하나의 어플리케이션을 복제하면서도 서로의 처리 상태에 영향을 주지 않는 고수준의 일관성을 보장하기도 합니다.

따라서 컨슈머 어플리케이션은 각각의 컨슈머가 분산되어 실행될 수 있게끔 구성하여 동시에 실행하면 됩니다.

참고로, 컨슈머 그룹 내의 컨슈머 갯수가 파티션 갯수보다 적으면 처리 속도가 느려지게 되며, 컨슈머 갯수가 파티션 갯수보다 많으면 일부 컨슈머는 처리할 메시지가 없어서 대기 상태에 놓이게 됩니다. 이러한 이유로 컨슈머 갯수 설정은 파티션 갯수와 적절하게 맞춰주어야 합니다.

마지막으로, 해당 내용이 해결하지 못하는 질문이 있다면 좀 더 자세한 내용을 제공해 주시면 답변 드리겠습니다. 감사합니다.

칼리반님의 프로필 이미지
칼리반

작성한 질문수

질문하기