강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của ttt123
ttt123

câu hỏi đã được viết

Giải quyết kiến trúc không đồng bộ bằng RabbitMQ một cách nhanh chóng

13. Mô hình Routing - Thu thập Log qua Direct Exchange (WebSocket, STOMP)

안녕하세요 섹션2. 12번 강의에서 질문 있습니다.

Đã giải quyết

Viết

·

59

0

안녕하세요 강의 잘 듣고 있습니다.

 

섹션2 12번 강의에서 (관심사기반의뉴스레터발행/구독모델) 에서 질문 있습니다.

fanout exchange는 바인딩된 모든 큐에 메시지를 보내는 방식이므로 모든 큐에 메시지가 가는 것으로 알고 있습니다.
예를 들어 제가 java 라는 특정 topic을 구독하면 java queue 에 있는 메시지만 계속 소비할텐데,
그러면 나머지 spring queue나 vue queue 에는 메시지가 계속 쌓여 문제가 되는 것 아닌가요 ?
발행/구독 모델을 왜 fanout exchange로 구현하신 건지 궁금합니다.

javaspring-bootjpamsawebsocketrabbitmq

Câu trả lời 2

1

codevillain님의 프로필 이미지
codevillain
Người chia sẻ kiến thức

수강자님 안녕하세요.

 

특정한 뉴스를 발행하는 경우 데이터가 쌓이는게 우려될 경우 Direct로 설계하는게 맞고, 회원 등급별로 후처리 등을 염두에 둘 경우 팬아웃으로 써도 무방하빈다.

pub/sub을 이용한 알람이 주 예제이고, 뉴스구독의 경우 fanout이든, direct이든 topic이든 구현하는 목적에 부합하는 방식으로 선택하시면 되는 문제라서 예제에서 단계별로 흐름을 설명하면서 각 exchange의 특징을 보여들릴 목적이지 뭘 선택하느냐는 실제 개발 환경에서의 목적에 따라 취사선택하시면 됩니다.

 

발행/구독 모델에 특정 사용자만 매칭해서 쏴야 할 경우, 전체에게 다 발행할 경우, 관심사 별로 유연하게 할 경우 해당 업무는 설계하는 목적에 따라 각각 direct, fanout, topic 을 선택해서 진행하시면 됩니다.

감사합니다.

0

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

Fanout Exchange와 관련된 궁금증에 대해 설명 드리겠습니다.

  1. Fanout Exchange의 특성: Fanout Exchange는 메시지를 라우팅 키와 관계없이 바인딩된 모든 큐로 브로드캐스트 하는 기능을 가지고 있습니다. 모든 구독자에게 메시지를 전송해야 하는 경우 효율적입니다.

  2. 발행/구독 모델에서의 Fanout 사용 이유:

    • 발행/구독 모델에서는 일반적으로 여러 구독자에게 같은 메시지를 전달하려고 할 때 Fanout Exchange를 사용합니다. 예를 들어 뉴스 레터 시스템처럼 모든 사용자가 동일한 정보에 접근해야 할 때 유용합니다.
    • Fanout Exchange를 사용하면 ~모든 바인딩된 큐에 같은 메시지가 전송~되므로, 구독자가 여러 큐에 할당되어 있는 경우에도 동일한 메시지를 얻을 수 있습니다.
  3. 큐에 메시지가 쌓이는 문제:

    • 특정 Topic(예: “/topic/java”)을 구독하면 해당 큐에 있는 메시지들을 소비하지만 나머지 큐의 메시지가 쌓이는 것은 사실입니다.
    • 이를 방지하기 위해 큐의 TTL(Time-To-Live)이나 정책을 설정하여 일정 시간이 지나면 메시지를 자동으로 삭제하도록 할 수 있습니다.

Fanout Exchange를 사용한 발행/구독 모델은 메시지를 구독자에게 효율적으로 전달할 수 있는 구조이며, 큐 메시지 관리 문제는 별도의 해결 방법을 통해 관리할 수 있습니다.

이와 관련하여 더 자세한 방법을 알고 싶으시면 다음의 질문들을 통해 추가적인 답변을 받아보시기 바랍니다:

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

Hình ảnh hồ sơ của ttt123
ttt123

câu hỏi đã được viết

Đặt câu hỏi