ActiveMQ에서 TCP 엔드 포인트의 간단한 라우팅은 무엇입니까?
-
06-07-2019 - |
문제
TCP에서 TCP 경로를 보여줄 ActiveMQ로 간단한 데모를 시작하려고합니다. activemq.xml 구성 파일의 낙타 컨텍스트에서 엔드 포인트와 경로를 코딩하고 있습니다.
<camelContext id="camel" xmlns="http://activemq.apache.org/camel/schema/spring">
<package>org.myorg.codec</package>
<endpoint id="listener_A" uri="mina:tcp://localhost:42000?sync=false&textline=true"/>
<endpoint id="listener_B" uri="mina:tcp://localhost:42001?sync=false&textline=true"/>
<route>
<from uri="activemq:listener_A"/>
<to uri="activemq:listener_B"/>
</route>
<route>
<from uri="activemq:listener_B"/>
<to uri="activemq:listener_A"/>
</route>
</camelContext>
이것이 왜 작동하지 않는지 아십니까?
AMQ 서버는 청취 포트를 열지 않는 것 같습니다.
편집 : 간단한 악마의 의도는 두 개의 Telnet 터미널 (A 및 B)을 사용하여 ActiveMQ에 연결하고 메시지 큐 서버를 통해 메시지를 서로 경주 할 수있는 것입니다. 나중에 컨텐츠를 기반으로 필터링 또는 라우팅을 시도 할 수 있습니다.
해결책
귀하의 구성 파일에 약간 혼란스러워합니다. 정확히 무엇을하려고합니까?
Mina를 사용하기 위해 2 개의 종점을 정의했습니다 (ActiveMQ를 전혀 사용하지 않음). 그런 다음 ActievMQ 대기열 청취자 _A에서 Listener_B로 경로를 사용한 다음 Listener_B로 LEARTER_A (이는 재귀 루프)를 사용합니다.
어쩌면 당신이 원하는 것을 설명하기 시작하면 XML의 모습을 알아낼 수 있습니다.
우연히 정의한 엔드 포인트를 참조하려면 ref = "이름" 보다는 속성 uri = "...".
예를 들어
<route>
<from ref="listener_A"/>
<to ref="listener_B"/>
</route>
말한 모든 것 - 당신은 낙타 사용자 포럼
다른 팁
이것에 대한 자세한 내용 :
엔드 포인트가 Mina TCP 연결로 정의되면 "activemq :: listener_a"로 식별 할 수 없습니다.
<endpoint id="listener_A" uri="mina:tcp://localhost:42000?sync=false&textline=true"/>
이것은 틀렸다 :
<from uri="activemq:listener_A"/>
이것은 작동합니다 :
<from ref="listener_A"/>
이것도 다음과 같습니다.
<from ref="mina:tcp://localhost:42000?sync=false&textline=true"/>
제휴하지 않습니다 StackOverflow