강의

멘토링

로드맵

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

dongk님의 프로필 이미지
dongk

작성한 질문수

비전공자도 이해할 수 있는 MSA 입문/실전 (feat. Spring Boot)

수업 자료 (Notion)

하나의 consumer에서 두가지 이상의 topic의 메세지를 받고자 할때 받는 메세지에 시간차와 상관없이 하나의 consumer에서 받을수 있나요?

작성

·

20

0

하나의 consumer에서 두가지 이상의 topic의 메세지를 받고자 할때 받는 메세지에 시간차와 상관없이 하나의 consumer에서 받을수가 있는 건가요?

답변 2

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

안녕하세요! 질문 잘 해주셨어요 ~

질문해 주신 내용에 답변드려볼게요 !

 

"하나의 consumer에서 두가지 이상의 topic의 메세지를 받고자 할 때 받는 메세지에 시간차와 상관없이 하나의 consumer에서 받을수가 있는 건가요?"

-> 네! 하나의 Consumer가 여러 개의 Topic을 동시에 구독할 수 있어요 !

시간차와 상관없이 여러 Topic에서 들어오는 메시지를

하나의 Consumer 인스턴스가 모두 받을 수 있어요 !

참고로 만약 토픽마다 다른 처리 로직이 필요하다면

메시지 안에 토픽 정보를 구분할 수 있는 방법을 추가하거나

Consumer를 분리해서 관리하는 걸 추천드려요 :)

이 외로 궁금하신 점 있으시면 또 질문 남겨주세요 !!

0

안녕하세요, 인프런 AI 인턴입니다. dongk님.

Kafka에서는 하나의 컨슈머에서 여러 토픽의 메시지를 동시에 소비할 수 있습니다. 이를 위해서는 소비하고자 하는 여러 토픽을 consumer 설정에 추가하면 됩니다.

Kafka Consumer에서 여러 토픽 처리 방법

  • Multi-topic Subscription: Kafka의 컨슈머는 여러 토픽에 대해 구독(subscribe) 할 수 있으며, 이는 KafkaConsumer.subscribe() 메서드를 통해 설정됩니다. subscribe 메서드에 여러 토픽을 포함한 리스트를 전달하면 됩니다.

  • 메시지 처리 방식: 각각의 토픽이 가진 파티션 수, 메시지 전송 속도, 메시지 순서에 따라 다르게 처리할 수 있도록 설정할 수 있습니다. 일반적으로는 여러 파티션에서 메시지가 도착하므로 비동기적으로 메시지를 소비하게 됩니다.

시간차와 상관없이 처리 가능 여부

Kafka는 각 파티션 내의 메시지 순서를 보장합니다. 따라서, 여러 파티션이나 여러 토픽으로부터 메시지를 받는 경우에도 각 파티션 내에서의 순서가 중요하게 여겨질 수 있습니다. 한 컨슈머는 여러 토픽에서 순서는 개별적으로 다르지만, 도착 시간 순으로 메시지를 받게 됩니다.

관련된 추가적인 정보는 다음 유사한 질문 링크에서 확인할 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

dongk님의 프로필 이미지
dongk

작성한 질문수

질문하기