Pregunta

Tengo dificultades para entender el concepto.

Estoy intentando implementar un punto final que escuche en un puerto tcp los mensajes entrantes en un formato propietario, que luego transformaría el mensaje y haría que camel se hiciera cargo del reenvío y el enrutamiento.

¿Entendí correctamente que el Productor es responsable de enviar mensajes al Endpoint y el Consumer los recibe desde ese punto final?

Al estudiar las interfaces no pude entender el flujo de mensajes entre esos objetos, especialmente en la parte del consumidor. Consumer solo define start() y stop() métodos...

Al configurar una prueba en una implementación esqueleto, Camel invocado createProducer() en el punto final y process() en el objeto productor.Después de eso regresó, sin hacer nada con el consumidor o el procesador asociado a él.

¿Alguien podría indicarme la dirección correcta?

¿Fue útil?

Solución 2

Finalmente lo descubrió mirando el componente de corriente.

Resulta que he cometido el error de pensar sobre el punto final como algo centro a través del cual todo debe ir.

La respuesta simple es que el consumidor recibe datos desde un sistema externo (escucha en un socket de servidor en mi caso) y el productor envía los datos al sistema externo.

Desde mi punto final es de sólo lectura (no se puede utilizar como el destino final del proceso de enrutamiento de camello), realmente no necesito un productor (que debería lanzar una RuntimeException si el sistema sigue tratando de hacerlo debido a la mala configuración ). Un ejemplo adecuado sería el camello-átomo de punto final -. Puede leer canales, pero (a partir de 1.6.0) no puede publicar uno

Del mismo modo, sólo se necesita un productor para un punto final de sólo escritura que no recibe los datos desde un sistema externo (por ejemplo la tala).

Otros consejos

Es importante recordar que un Endpoint, creado por un Component (es decir.Endpoint Factory), puede sentarse en cualquiera final de un camello Route.Si pones el Componente al inicio de una ruta entonces debe haber una implementación del Consumer parte de Componente.Esto hace el trabajo de convertir la entrada/solicitud específica (como una solicitud HTTP) en algo genérico: un Camel Exchange - que puede viajar por un Ruta.Mientras que si pones el Componente al final de un ruta entonces debes tener una implementación de un Producer.El Productor hace el trabajo de tomar el Intercambio desde el final de un ruta y convertirlo en algo específico (como un mensaje JMS).

Considero que la documentación de Fuse ESB es mejor (en general) que la Sitio web de Apache Camel.Desde el Página de componentes del fusible ESB:

Puntos finales del consumidor consumir solicitudes.Siempre aparecen al principio de una ruta y encapsulan el código responsable de recibir solicitudes entrantes y envío de respuestas salientes.

Puntos finales del productor producir solicitudes.Siempre aparecen al final de una ruta y encapsulan el código responsable de enviar solicitudes salientes y recepción de respuestas entrantes.


enter image description here

A Productor extiende procesador que significa que tiene un método de proceso.

Consulte el capítulo 1 libre en el libro de Camel en Acción, que cuenta un poco acerca de esos conceptos camello. http://www.manning.com/ibsen/

Y este tutorial también es excelente ya que introduce los conceptos en un ritmo constante http://camel.apache.org/tutorial-example-reportincident.html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top