6.2. 게시-서브스크립션 채널
6.2.1. 개요
그림 6.2. “서브스크립션 채널 패턴 게시” 에 표시된 게시-서브스크립션 채널은 여러 구독자가 지정된 메시지를 사용할 수 있는 5.2절. “메시지 채널” 입니다. 이는 6.1절. “point-to-Point 채널” 과 다릅니다. 게시-서브스크립션 채널은 여러 구독자에게 이벤트 또는 알림을 브로드캐스트하는 수단으로 자주 사용됩니다.
그림 6.2. 서브스크립션 채널 패턴 게시
6.2.2. 게시-서브스크립션 채널을 지원하는 구성 요소
다음 Apache Camel 구성 요소는 publish-subscribe 채널 패턴을 지원합니다.
6.2.3. JMS
JMS에서 게시-서브스크립션 채널은 주제로 표시됩니다. 예를 들어 다음과 같이 Cryostat Quotes라는 JMS 항목에 대한 엔드포인트 URI를
지정할 수 있습니다.
jms:topic:StockQuotes
자세한 내용은 Apache Camel 구성 요소 참조 가이드 의 Jms 를 참조하십시오.
6.2.4. ActiveMQ
ActiveMQ에서 게시-서브스크립션 채널은 주제로 표시됩니다. 예를 들어 다음과 같이 Cryostat Quotes
라는 ActiveMQ 항목에 대한 엔드포인트 URI를 지정할 수 있습니다.
activemq:topic:StockQuotes
자세한 내용은 Apache Camel 구성 요소 참조 가이드 의 ActiveMQ 를 참조하십시오.
6.2.5. XMPP
XMPP(Jabber) 구성 요소는 그룹 통신 모드에서 사용할 때 게시-서브스크립션 채널 패턴을 지원합니다. 자세한 내용은 Apache Camel 구성 요소 참조 가이드 의 Xmpp 를 참조하십시오.
6.2.6. 정적 서브스크립션 목록
원하는 경우 Apache Camel 애플리케이션 자체 내에서 게시-서브스크립션 논리를 구현할 수도 있습니다. 간단한 접근 방식은 경로 끝에 대상 끝점이 모두 명시적으로 나열된 정적 서브스크립션 목록을 정의하는 것입니다. 그러나 이 접근 방식은 JMS 또는 ActiveMQ 주제만큼 유연하지 않습니다.
6.2.7. Java DSL 예
다음 Java DSL 예제에서는 단일 게시자, seda:a
및 세 구독자, seda:b
:c
, seda:d
를 사용하여 게시 구독 채널을 시뮬레이션하는 방법을 보여줍니다.
from("seda:a").to("seda:b", "seda:c", "seda:d");
이는 InOnly 메시지 교환 패턴에서만 작동합니다.
6.2.8. XML 구성 예
다음 예제에서는 XML로 동일한 경로를 구성하는 방법을 보여줍니다.
<camelContext id="buildStaticRecipientList" xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="seda:a"/> <to uri="seda:b"/> <to uri="seda:c"/> <to uri="seda:d"/> </route> </camelContext>