Frage

Ich habe Schwierigkeiten Einwickeln meinen Kopf um das Konzept.

Ich versuche, einen Endpunkt, der zuhört auf einem TCP-Port für eingehende Nachrichten in einem proprietären Format zu implementieren, die dann die Nachricht verwandeln würden und haben Kamel die Weiterleitung übernehmen und weiterzuleiten.

Habe ich das richtig verstehe, dass der Produzent verantwortlich für die Nachrichten in das Endpoint Senden und die Consumer erhält von diesem Endpunkt?

Wenn Sie die Schnittstellen des Studiums konnte ich nicht den Nachrichtenfluss zwischen diesen Objekten herauszufinden, vor allem auf den Verbraucher Teil. Consumer nur definiert start() und stop() Methoden ...

Wenn Sie einen Test auf einem Skelett Implementierung einrichten, aufgerufen Camel createProducer() auf dem Endpunkt und process() auf dem Hersteller-Objekt. Danach kehrte er, swithout mit dem Verbraucher oder dem Prozessor damit verbundenen etwas zu tun.

Könnte jemand Punkt mich in die richtige Richtung?

War es hilfreich?

Lösung 2

ich es endlich herausgefunden, indem man die Stream-Komponente suchen.

Es stellte sich heraus, dass ich den Fehler des Denkens über den Endpunkt als etwas Gemachtes zentrale durch die alles gehen muss.

Die einfache Antwort ist, dass die Verbraucherdaten von einem externen System empfängt (auf einem Server-Socket in meinem Fall hören) und der Hersteller sendet die Daten an das externe System.

Da mein Endpunkt schreibgeschützt ist (es wird nicht als die endgültige Bestimmung des Camel-Routing-Prozesses verwendet werden), ich habe nicht wirklich einen Produzenten braucht (es sollte eine Runtime werfen, wenn das System immer noch versucht, es zu tun, wegen Fehlkonfiguration ). Ein passendes Beispiel wäre das Kamel-Atom Endpunkt -. Sie Feeds aber (ab 1.6.0) lesen Sie kann man nicht veröffentlichen

Ebenso brauchen Sie nur einen Produzenten für einen Nur-Schreib-Endpunkt, die Daten von einem externen System nicht (z logging) erhalten.

Andere Tipps

Es ist wichtig, sich daran zu erinnern, dass ein Endpoint von einem Component erstellt (das heißt Endpoint Factory), kann in sitzen entweder Ende eines Camel Route. Wenn Sie setzen die Komponente zu Beginn einer Route dann muss es eine Implementierung des Consumer Teil der Komponente sein. Dies macht die Arbeit der spezifischen Eingabe / Anfrage Umwandlung (wie eine HTTP-Anforderung) in etwas generisch - ein Kamel Exchange - das eine nach unten fahren kann Route . Während, wenn Sie die put Komponente am Ende einer Route , dann müssen Sie eine Implementierung eines Producer haben. Die Hersteller macht die Arbeit des Nehmens des Austausch von dem Ende einer Route und es in etwas Bestimmten Umwandlung (wie eine JMS-Nachricht).

Ich finde die Dokumentation Fuse ESB besser zu sein (im Allgemeinen) als die Apache Camel Website . Von Fuse ESB-Komponente Seite :

  

Verbraucher Endpunkte verbrauchen Anfragen. Sie erscheinen immer am Anfang   eine Route und sie kapseln den Code für den Empfang   eingehende Anfragen und ausgehende Antworten Dispatching.

     

Producer Endpunkte Produkte Anfragen. Sie erscheint immer am Ende   eine Route und sie kapseln den Code verantwortlich für Dispatching   ausgehende Anfragen und eingehende Antworten zu empfangen.


eingeben Bild Beschreibung hier

A Producer erstreckt Prozessor, der bedeutet, dass es einen Prozess Verfahren außerdem hat.

überprüfen Sie die freien Kapitel 1 in dem Camel in Aktion Buch, das ein wenig über diese Camel Konzepte erzählt. http://www.manning.com/ibsen/

Und das Tutorial ist auch ausgezeichnet, da sie diese Konzepte in einem gleichmäßigen Tempo führen http://camel.apache.org/tutorial-example-reportincident.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top