Enrutamiento simple de puntos finales TCP en activemq ¿qué tiene de malo?
-
06-07-2019 - |
Pregunta
Estoy tratando de comenzar una demostración simple con ActiveMQ que demuestre una ruta TCP a TCP. Estoy codificando los puntos finales y las rutas en un contexto de camello en mi archivo de configuración 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>
¿Alguna idea de por qué esto no funciona?
El servidor AMQ no parece estar abriendo un puerto de escucha.
Editar: La intención aquí, como una simple demostración, es conectarse a ActiveMQ con dos terminales telnet (A y B) y poder enrutar mensajes de uno a otro a través del servidor de cola de mensajes. Más tarde, puedo intentar filtrar o enrutar según el contenido.
Solución
Estoy un poco confundido por su archivo de configuración. ¿Qué estás tratando de hacer exactamente?
Ha definido 2 puntos finales para usar MINA (que no usará ActiveMQ en absoluto); entonces está utilizando una ruta desde una cola ActievMQ listener_A a listener_B luego listener_B a listener_A (que es un bucle recursivo).
Tal vez si comienzas a describir lo que quieres hacer, podemos averiguar cómo debería ser el XML.
Por cierto, si solo quiere referirse a los puntos finales que ha definido, use el atributo ref = " name " en lugar de uri = " ... " .
por ejemplo
<route>
<from ref="listener_A"/>
<to ref="listener_B"/>
</route>
Dicho todo esto, tiende a mejorar & amp; soporte más rápido en Camel a través del Foro de usuarios de Camel
Otros consejos
Más sobre esto:
Cuando el punto final se define como una conexión mina tcp, no puede identificarse como " activemq :: listener_A "
<endpoint id="listener_A" uri="mina:tcp://localhost:42000?sync=false&textline=true"/>
esto está mal:
<from uri="activemq:listener_A"/>
esto funciona:
<from ref="listener_A"/>
también lo hace:
<from ref="mina:tcp://localhost:42000?sync=false&textline=true"/>