이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 14746|회답: 1

activemq 큐와 Topic의 차이점은 다음과 같습니다

[링크 복사]
게시됨 2017. 7. 14. 오전 9:59:30 | | | |
큐와 토픽은 JMS에서 지원하는 두 가지 메시징 모델입니다:
        1. 포인트 투 포인트(PTP) 큐 메시징 모델:
        이 메시징 모델을 통해 한 애플리케이션(즉, 메시지 생성자)이 다른 애플리케이션(즉, 메시지 소비자)에게 메시지를 보낼 수 있습니다. 이 전달 모델에서 메시지 목적지 유형은 큐(Queue)입니다(즉, 목적지 인터페이스 구현 클래스 인스턴스는 세션 인터페이스 구현 클래스 인스턴스가 createQueue 메서드를 호출하고 큐 이름을 전달하여 생성됩니다). 메시지는 먼저 메시지 서버 측의 특정 큐에 전달되고, 그 큐에서 이 큐를 듣는 소비자에게 전달됩니다. 동일한 큐는 여러 메시지 생성자와 메시지 소비자를 연결할 수 있지만, 한 메시지는 한 메시지 소비자에게만 전달될 수 있습니다. 대기열에 여러 메시지 소비자가 메시지를 듣고 있다면, JMS 메시지 서버는 '선착순' 원칙에 따라 다음 메시지 소비자가 어떤 메시지를 받을지 결정합니다. 메시지 소비자가 큐를 듣지 않으면, 메시지 컨슈머가 큐에 연결할 때까지 메시지는 큐에 남아 있습니다. 이 메시징 모델은 전통적인 의미에서 게으른 또는 폴링 모델입니다. 이 모델에서는 메시지가 자동으로 메시지 소비자에게 푸시되는 것이 아니라, 메시지 소비자가 큐에서 요청합니다.
        2. 게시/구독(pub/subscribe) 주제 메시징 모델:
        이 메시징 모델을 통해 애플리케이션은 여러 메시지 소비자에게 단일 메시지를 보낼 수 있습니다. 이 전달 모델에서 메시지 목적지 유형은 주제입니다(즉, 목적지 인터페이스 구현 클래스 인스턴스는 세션 인터페이스 구현 클래스 인스턴스가 createTopic 메서드를 호출하고 토픽 이름을 전달하여 생성됩니다). 메시지는 먼저 메시지 생성자가 메시지 서버의 특정 주제에 게시한 후, 해당 주제에 가입한 모든 소비자에게 메시지를 전달합니다. 주제 목표는 장기 구독도 지원합니다. 장기 구독은 소비자가 주제 목표에 등록되어 있지만, 메시지가 목적지에 도착했을 때 소비자가 비활성 상태일 수 있음을 의미합니다. 소비자가 다시 활성화되면 메시지가 전송됩니다. 만약 어떤 소비자도 해당 주제 목적지에 등록되어 있지 않으면, 해당 주제는 장기 구독에 가입한 비활성 소비자에게만 메시지를 남깁니다. PTP 메시징 모델과 달리, 퍼블/구독 메시징 모델은 여러 주제 구독자가 동일한 메시지를 받을 수 있도록 허용합니다. JMS는 모든 주제 구독자가 메시지를 받을 때까지 메시지를 보관합니다. 퍼블릭/구독 메시징 모델은 기본적으로 푸시 모델입니다. 이 모델에서는 메시지가 자동으로 방송되며, 메시지 소비자가 새로운 메시지를 받기 위해 주제를 적극적으로 요청하거나 폴링할 필요가 없습니다.
        구체적인 차이점은 다음과 같습니다:


주제
대기
개요
게시 구독 메시지 게시 구독 메시지 게시
포인트 투 포인트 투 포인트
국가는 존재하지 않습니다
주제 데이터는 기본적으로 상태가 없습니다.
큐 데이터는 기본적으로 MQ 서버에 파일로 저장되며, 예를 들어 Active MQ는 보통 $AMQ_HOME\data\kr-store\data 아래에 저장됩니다. DB 저장소로도 구성할 수 있습니다.
무결성 보장
출판사가 발행하는 모든 데이터가 구독자에게 반드시 받아들여진다는 보장은 없습니다.
큐는 수신자가 모든 데이터를 받을 수 있음을 보장합니다.
메시지가 사라질 수 있을지
일반적으로 출판사가 주제에 메시지를 게시할 때, 해당 주제 주소를 듣는 서브레딧만 메시지를 받을 수 있습니다. 만약 듣고 있는 서브가 없으면 주제가 사라집니다.
송신자는 대상 큐에 메시지를 보내고, 수신자는 이 큐에서 비동기적으로 메시지를 받을 수 있습니다. 대기열에 있는 메시지는 당분간 수신자가 없어도 사라지지 않습니다.
메시지 릴리스 수신 정책
일대다 메시지 게시 및 수신 정책으로, 동일한 주제 주소를 여러 서브가 듣는 경우 게시자가 보내는 메시지를 받을 수 있습니다. 서브는 MQ 서버로 알림을 받습니다
일대일 메시지 발행 및 수신 정책으로, 송신자가 보낸 메시지는 한 수신자만 받을 수 있습니다. 수신자가 수신한 후, MQ 서버는 수신 사실을 알리고, MQ 서버는 큐 내 메시지에 대해 삭제하거나 다른 조치를 취합니다.





이전의:구글 애드센스와 구글 애드워즈의 차이점
다음:.net/c# Taobao through train batch setting crowd [소스 코드]
 집주인| 게시됨 2018. 3. 29. 오후 1:09:01 |

JMS의 큐 메시지 전달 프로세스는 다음과 같습니다:



큐 모드에서는 발행자가 메시지를 발행하고, 아래 수신자들이 큐 순서대로 메시지를 받습니다. 예를 들어, 10개의 메시지가 게시되면 두 수신자 A와 B가 중복 없이 총 10개의 메시지를 받습니다.

JMS의 주제 메시지 처리 과정은 아래에 나와 있습니다:



주제 모드에서는, 발행자가 메시지를 발행하고 두 명의 수신자 A와 B가 구독하면 10개의 메시지가 게시되고, A와 B는 각각 10개의 메시지를 받습니다.
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com