Frage

Vor allem dank Leuten, die zur Zeit in der Entwicklung von Camel beteiligt sind, bin ich dankbar für all die harte Arbeit, die sie in gesetzt haben.

Ich bin auf der Suche nach Designberatung.

Die Architektur ist so etwas wie diese: Ich habe eine Reihe von Java-Klassen, die, wenn instanziiert erforderlich sind, um miteinander zu verbinden und Nachrichten mit Apache Camel senden. Die Design-Einschränkungen erfordern mir einen Rahmen zu schaffen, so dass alle Routing-Informationen, Hersteller, Verbraucher, Endpunkte usw. sollte ein Teil des Kamel context.xml sein.

Der Einzelne sollte die Fähigkeit haben, eine solche Datei zu ändern und vollständig die bestehende Route zu ändern, um ihm den Java-Code ohne verfügbar. (Der Java-Code würde nicht nur zur Verfügung gestellt, werden die kompilierte Jar wäre)

Zum Beispiel in einer Aufspannung, Bean. A -> Bean B-> Bean C-> File-> E-Mail in einem anderen Bean B-> Bean A-> Bean C-> FTP-> File-> E-Mail Wir haben verschiedene genähert versucht, aber wenn der Ursprung Bohne als Java-DSL nicht implementiert ist, die Nachrichten Rate ist sehr hoch, weil Kamel ständig Bean A im ersten Beispiel und Bean B in den zweiten ruft (sie wobei die Quelle).

Bean A und B Bean Nachrichten und sind ereignisgesteuert. Falls das gewünschte Ereignis auftritt, senden die Bohnen eine Benachrichtigung aus.

sind meine Transformationen sehr einfach und ich erfordern nicht die Leistung von Java DSL überhaupt. Um es zusammenzufassen, ich habe folgende Fragen:

1) Unter Berücksichtigung der oben genannten Einschränkungen, ich stelle ich sicher, alle Routing-Informationen, einschließlich Zieladressen, alles ist ein Teil der Kamel Kontextdatei?

2) Gibt es beispiels ich für die Führung der Routing-Informationen völlig unabhängig von dem Java-Code aussehen kann?

3) Wie stelle ich sicher, Camel nicht ständig invoke die Ursprungs Bohne?

4) Enthält Camel ständig aufrufen nur den Ursprung Bohne oder jede Bohne sendet und Nachrichten von der Position der Bohne in der gesamten Messaging-Warteschlange unabhängig?

Ich habe Möglichkeiten erschöpft verschiedene Weise versucht, diese bis zu setzen. Jede mögliche Hilfe würde geschätzt.

War es hilfreich?

Lösung

Lesen Sie mehr über die Middleware auf dem Kamel versteckt Wiki-Seiten. Auf diese Weise können Sie Kunden eine Schnittstelle verwenden lassen, um Nachrichten zu senden / empfangen, aber völlig ahnungslos von Camel (kein Kamel API überhaupt verwendet wird).

Auch für besser das Kamel in Aktion Buch zu kaufen und Kapitel 14, spricht über diese Zeilen lesen. http://www.manning.com/ibsen/

Speichern 41% auf Manning Bücher: Kamel in Aktion oder ActiveMQ in Aktion. Benutzen Sie den Code s2941. Gültig bis 6. Oktober http://www.manning.com/ibsen/

Andere Tipps

Wenn Sie ServiceMix von FuseESB Erwägen Sie, möchten Sie vielleicht Ihre Routen in zwei Teile trennen.

Die erste Teil wäre das Ereignis Fahrer-Bean, die die Strecke auslösen. Es könnte Push-Nachrichten an die ServiceNMR (siehe http://camel.apache.org/nmr.html).

Der andere Teil würde den Rahmen Benutzer überlassen, Frühling DSL verwenden. Es wäre zu hören, nur um Meldung auf dem NMR (Push durch die andere Strecke) und tun, was sie wollen mit ihm.

Natürlich Endpunkt Definition propertized werden könnte ServiceMix Konfigurationsdienst (siehe http: // Kamel .apache.org / properties.html # Immobilien-UsingBlueprintpropertyplaceholderwithCamelroutes )

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