2013-01-07 22 views
8

Che cos'è "unità di promozione" o flusso in un percorso Camel Apache? Significato, qual è l'oggetto che viene effettivamente instradato? A Message? Un Exchange?Apache Camel: cosa viene effettivamente instradato?

Lo chiedo perché ho pensato che un Route consisteva di 1+ Processor endpoint, e che un Exchange (contenente un Message) era quello che in realtà viene instradato attraverso tutti gli endpoint.

Ma sembra che Exchange può avere sia una entrata e un'uscita Message, il che indica che i messaggi possano mossa attraverso scambi (al contrario di scambi movimento attraverso trasformatori/endpoint). Qualcuno può aiutare a chiarire perché gli scambi hanno messaggi in entrata e in uscita e quali percorsi stanno passando a ciascun processore/endpoint?

risposta

5

Lo scambio è semplicemente un oggetto wrapper attorno ai messaggi in una singola route.

I messaggi in entrata e in uscita in uno scambio vengono utilizzati per gestire diversi modelli di scambio (MEP).

In genere, questo viene utilizzato nei processori/endpoint che restituiscono una risposta (vale a dire il modello richiesta/risposta), in Camel è denominato InOut. Quindi il processore/componente legge la richiesta dal parametro In e imposta la risposta nel parametro Out. Nel prossimo passaggio del percorso Out diventerebbe In.

Se si desidera inserire un messaggio da qualche parte e non preoccuparsi della risposta, è possibile utilizzare ExchangePattern.InOnly.

Anche se si è in un processore e si desidera trasformare il messaggio, è possibile operare sul messaggio In e verrà copiato su Out.

questo è anche descritto nel libro Camel nel capitolo Azione 1.

I percorsi sono di passaggio il messaggio in giro, e lo scambio è un oggetto di accesso che viene utilizzato per passare il messaggio e accedere ad alcuni metadati globale.

Problemi correlati