한 서버에서 producer와 consumer를 같이 구축해도 될까요?
656
작성한 질문수 2
안녕하세요.
한 서버에서 producer와 consumer를 같이 구축하게 된다면, 생길 수 있는 문제가 있을까요?
혹시 현업에서 producer와 consumer를 같이 구축하는 경우가 많은지 아니면 보통 분리해서 사용하는지 궁금합니다.
만약 consumer 서버를 스케일아웃해서 3대로 운영한다면, consumer 서버에서 구독하는 모든 토픽들의 컨슈머 수가 3배가 되는게 맞을까요?
예를 들어 A, B, C 토픽을 "가consumer"서버에서 구독하고 있을때 가consumer"서버가 3대가 된다면 토픽 A <- 컨슈머 3개 / 토픽 B <- 컨슈머 3개 / 토픽 C <- 컨슈머 3개가 되는것인지, 따로 설정해서 토픽마다 컨슈머의 수를 다르게 가져갈 수 있는 것인지 궁금합니다.
강의 잘 듣고 있습니다!
감사합니다 :)
답변 2
2
안녕하세요
한 서버에 프로듀서와 컨슈머 둘다 운영하는 경우도 있습니다. 다만, 이렇게 통합해서 운영할 경우 컨슈머의 장애 대응이 쉽지 않아서 일반적인 케이스에는 분리하여 운영하는 것이 좋을것 같습니다. 저 같은 경우에도 많은 부분 분리해서 운영하는 것을 선호합니다.
그리고 컨슈머 서버의 애플리케이션의 스케일아웃에 대응하는 토픽 - 컨슈머의 할당은 파티션 개수와 컨슈머 할당 전략(Consumer assignor strategy)에 따라 다릅니다. 그러므로 각 토픽의 파티션 개수와 컨슈머 할당 전략이 어떻게 되어 있는지 확인하시는 것이 중요합니다.
감사하빈다!
0
안녕하세요, 인프런 AI 인턴입니다.
한 서버에서 프로듀서와 컨슈머를 같이 구축하는 경우, 서로의 리소스(메모리, CPU 등)를 경쟁하게 되며, 서버 장애 발생 시 프로듀서와 컨슈머 모두에 영향을 줄 수 있습니다. 백그라운드 작업 또는 가용성이 중요한 경우 분리하는 것을 고려할 수 있습니다.
현업에서는 프로듀서와 컨슈머를 분리하여 운영하는 경우가 많습니다. 이는 구조적인 격리를 통해 유연성, 확장성 및 유지보수성을 향상하기 위한 선택입니다. 하지만, 작은 규모의 애플리케이션나 리소스가 제한적인 환경에서는 같은 서버에서 운영하는 경우도 있습니다.
컨슈머 서버를 스케일아웃하여 3대로 운영하는 경우, 각 서버의 컨슈머 인스턴스가 같은 컨슈머 그룹에 속하면 전체 토픽에 대한 컨슈머 수는 고정되고 파티션 별로 할당됩니다. 따라서, 각 토픽마다 컨슈머 수가 3배로 증가하는 것은 아닙니다. 스프링 부트에서 Kafka를 설정하는 방법에 대한 예시는 다음과 같습니다:
spring.kafka.consumer.group-id=myGroup
컨슈머 그룹 설정을 통해 여러 인스턴스가 동일한 그룹에 속하도록 할 수 있으며, 이 경우 Kafka는 파티션을 그룹 내 컨슈머 인스턴스 간에 공평하게 분배합니다. 만약 각 토픽별로 다른 컨슈머 수를 원한다면, 각기 다른 컨슈머 그룹을 설정하고 그룹별로 인스턴스를 할당하는 방식을 선택할 수 있습니다.
이와 관련해서 추가적인 정보가 필요하시다면, 스프링 부트의 Kafka 지원 문서를 참고하시면 도움이 될 것입니다:
- Spring Boot Apache Kafka Support
- Spring Boot Kafka Streams
- Spring Boot Additional Kafka Properties
학습에 도움이 되시길 바랍니다. 좋은 강의 들으시길 바라며, 추가적인 질문이 있으시면 언제든 문의해 주세요!
감사합니다, 시골쥐님.
consume 이후 lag가 줄어들지 않음
0
75
2
안녕하세요. 강의의 카프카 버전과 현재 시점의 카프카의 차이점 문의 드립니다.
0
117
2
멱등성 프로듀서 retries 관련 질문입니다.
0
99
2
채팅 서비스 개발 시 주의점이 있을까요?
0
100
2
충분히 큰 파티션 생성시 궁금증이 존재합니다.
0
87
2
KTable 키가 없는 레코드 처리
0
73
2
컨슈머 테스트 코드 작성
0
94
2
리밸런스 onPartitionRevoked이 필요한 상황
0
74
2
카프카 클러스터에서 감당 가능한 파티션(레플리카) 수 문의
0
120
2
reset offset 질문
0
77
2
KStreamJoinKTable 실행시 오류
0
78
2
auto.commit.interval.ms 옵션 관련 질문 드립니다.
0
142
2
파티션, 컨슈머 그룹, 컨슈머 관련 질문
0
117
1
java, kotlin
0
130
2
shutdownThread 에 대한 문의 입니다.
0
154
2
zookeeper실행시 오류가 발생합니다.
0
270
2
커스텀 소스 커넥터에서 Thread.sleep (1000) 은 왜 하는거에요?
0
153
2
처리량을 늘리기 위해서 파티션을 늘리고 컨슈머를 늘려야한다고 설명하셨는데요
0
180
3
파티션 개수와 컨슈머 개수의 처리량 관련 질문
0
164
2
동영상 및 이미지 처리 관련 문의 드립니다.
0
226
2
주키퍼 없이 사용 문의 드립니다.
0
303
1
kafka 를 띄우니 오류가 발생하고 종료합니다.
0
281
3
zookeeper 실행시 오류 .. 무엇을 해야 할까요?
0
220
2
파티션 추가로 해결할 수 있지만 늘어난 파티션은 줄일 수 없지 않나요?
0
192
2





