En el post anterior creamos un componente en Camel, y ahora vamos a ver en detalle qué es un productor y un consumidor, mirando el código de nuestro proyecto.
1) Productor (HelloWorldProducer.java)
Un ejemplo de productor es FileProducer, que se encarga de convertir el cuerpo del mensaje Camel en un fichero.
En resumen, cuando en Camel se mandan mensajes a un endpoint, es el productor el que hace el trabajo "duro" para poder interactuar adecuadamente con el sistema externo.
2) Consumidor (HelloWorldConsumer.java)
En una ruta Camel, los mensajes fluyen de un procesador a otro. Para entenderlo mejor, podemos ver una ruta como nodos interconectados, cada uno asociado a un procesador, y en el que la salida de un procesador es la entrada del siguiente.
Referencia: Camel in Action
1) Productor (HelloWorldProducer.java)
public void process(Exchange exchange) throws Exception { System.out.println(exchange.getIn().getBody()); }En este ejemplo el productor simplemente muestra el body del mensaje por pantalla. Si por ejemplo quisiéramos enviar el mensaje a un sistema remoto, tendríamos que conectarnos a él y enviar el mensaje en un formato "entendible" por la transmisión.
Un ejemplo de productor es FileProducer, que se encarga de convertir el cuerpo del mensaje Camel en un fichero.
En resumen, cuando en Camel se mandan mensajes a un endpoint, es el productor el que hace el trabajo "duro" para poder interactuar adecuadamente con el sistema externo.
2) Consumidor (HelloWorldConsumer.java)
Un consumidor se encarga de introducir mensajes en una ruta Camel. Es decir, son la fuente de mensajes dentro de una ruta.
@Override protected int poll() throws Exception { Exchange exchange = endpoint.createExchange(); // create a message body Date now = new Date(); exchange.getIn().setBody("Hello World! The time is " + now);
// send message to next processor in the route getProcessor().process(exchange);