Was ist die "Einheit der Beförderung" oder der Fluss in einer Apache Camel Route? Was bedeutet das Objekt, das tatsächlich geroutet wird? Ein Code%? Ein Message
?
Ich frage, weil ich dachte , dass ein Exchange
aus 1+ Route
Endpunkten besteht, und dass ein Processor
(mit einem Exchange
) das ist, was tatsächlich über alle geroutet wird Endpunkte.
Aber es scheint, dass Message
sowohl einen eingehenden als auch einen ausgehenden Exchange
haben kann, was darauf hinweist, dass Nachrichten sich durch Austauschvorgänge bewegen können (im Gegensatz zu Austauschknoten, die sich durch Prozessoren / Endpunkte bewegen). Kann jemand bei der Klärung helfen, warum Austauschvorgänge eingehende und ausgehende Nachrichten enthalten und welche Routen tatsächlich an jeden Prozessor / Endpunkt weitergeleitet werden?
Der Austausch ist einfach ein Wrapper-Objekt um Nachrichten in einer einzelnen Route.
Die eingehenden und ausgehenden Nachrichten in einem Austausch werden verwendet, um unterschiedliche Austauschmuster (MEP) zu behandeln.
Normalerweise wird dies in Prozessoren / Endpunkten verwendet, die eine Antwort zurückgeben (d. h. das Anfrage / Antwort-Muster), in Camel heißt es InOut. Dann würde der Prozessor / die Komponente die Anforderung vom Parameter In
lesen und die Antwort im Parameter Out
festlegen. Im nächsten Schritt in der Route würde Out In werden.
Wenn Sie eine Nachricht irgendwo ablegen möchten und sich nicht um die Antwort kümmern möchten, können Sie ExchangePattern.InOnly
verwenden.
Auch wenn Sie sich in einem Prozessor befinden und die Nachricht transformieren möchten, können Sie die In-Nachricht bearbeiten, und sie wird nach Out kopiert.
Dies wird auch in dem Buch Kamel in Aktion Kapitel 1 beschrieben.
Die Routen leiten die Nachricht weiter, und Exchange ist ein Zugriffsobjekt, das zum Übergeben der Nachricht und zum Zugreifen auf einige globale Metadaten verwendet wird.
Tags und Links java apache-camel