해결된 질문
작성
·
15
답변 2
1
안녕하십니까,
제가 질문을 잘 이해하지 못했습니다. 먼저 질문 중
=>
이렇게 말씀하셨는데
컨슈머를 띄울 때 파티션별로 각 서버마다 따로 뜨게 하시는지
한 컨슈머 서버에 여러 파티션을 구독하게 띄우시는지 궁금합니다.
=================
에서 서버와 컨슈머 서버가 어떤 것을 의미하는 지요? Kafka에서 Consumer 는 Client입니다. 그리고 broker는 서버입니다. 즉 consumer client 가 broker 서버에 접속해서 데이터를 읽어 들이는 구조 입니다. 다시 한번 질문 확인 부탁드립니다.
감사합니다.
Consumer 서버의 의미가 그런것이었군요 ^^
다만 consumer 서버라는 단어는 잘 사용하지 않아서 이렇게 용어를 정리하면 어떨까 싶습니다.
Consumer Client: 하나의 Consumer Process를 기동 시키는 Client 프로그램 또는 Process
EC2 인스턴스: Consumer Client 를 기동시키는 인스턴스
보통은 4개의 Partition을 가지는 Topic를 위해 Consumer 를 4개를 띄운다면 하나의 EC2 인스턴스에서 4개의 Consumer Client 프로그램(예를 들어 Java 프로그램 또는 Process)을 띄웁니다.
Consumer는 Thread Safe하지 않아서 보통은 Thread를 사용하지 않고 개별 Process로 각각 구동합니다. Thread를 사용하지 못하는 건 아닌데, 권장되지 않고, 방법이 좀 복잡합니다
인스턴스 4개 띄우고 각 인스턴스별 Consumer를 띄울 수는 있는데, 서버 자원 낭비일 수 있을 것 같습니다. 다만 단일 인스턴스에서 I/O 용량등이 부족하다면 여러 인스턴스에서 Consumer 구동을 고려 해볼 수도 있습니다.
0
안녕하세요, 인프런 AI 인턴입니다.
HAHA님께서 Consumer 설정에 대해 질문해 주셨네요. 카프카에서는 Consumer 그룹의 설정에 따라 하나의 Consumer 인스턴스가 여러 파티션을 소비할 수 있습니다. 이러한 설정은 주로 성능과 구독 패턴에 따라 조정하게 됩니다.
Consumer의 파티션 할당:
파티션 할당 관리:
설정 기준:
카프카의 Consumer 설정은 시스템 요구사항과 사용 패턴에 맞춰 유연하게 구성할 수 있습니다. 처음 공부하시는 경우 다양한 설정을 시도해보시면서 성능과 데이터 처리의 차이를 체험해 보시는 것도 좋은 방법입니다.
KYR님의 질문에 대해 더 많은 정보를 참고할 수 있도록 몇 가지 관련 링크를 제공드립니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
죄송합니다. 질문을 다시 명확하게 정리해보겠습니다.
Producer -> Broker -> Consumer
이렇게 구조로 되어 있을 때 Consumer를 구현하여 서버로 띄워 놓는 것을 Consumer 서버이고,
Producer는 일반적으로 API 서버에서 이벤트를 발행할 것이라 생각했습니다.
이때 Topic 파티션이 4개가 있고 Consumer가 4개 존재한다고 생각해보겠습니다.
EC2인스턴스에 Consumer 서버를 띄운다고 했을 때,
인스턴스 4개 띄우고 Consumer 각각 할당해 인스턴스와 Consumer 1:1과 파티션과도 1:1로 맞춘다
인스턴스 1개 띄우고 컨슈머 4개 띄운다.(subscribe와 poll 메서드를 만들고 메인 함수에서 스레드 4개 돌려서 한 인스턴스에서 4개 컨슈머 띄워서 4개 파티션을 한 서버에서 처리)
1이거나 혹은 1번이 아닌 방법으로 Consumer 서버를 띄울 것 같은데, 어떤 기준으로 선택하시는지 궁금합니다.
혹시 질문이 이해가 가지 않으셨다면, 말씀해주시면 제가 좀 더 정리해보겠습니다.
감사합니다.