Zunächst einmal danke ich den Leuten, die derzeit an der Entwicklung von Camel beteiligt sind, für all die harte Arbeit, die sie geleistet haben.
Ich bin auf der Suche nach einem Design-Rat.
Die Architektur sieht in etwa so aus: Ich habe eine Reihe von Java-Klassen, die, wenn sie instanziiert werden, eine Verbindung zueinander herstellen und Nachrichten mit Apache Camel senden müssen. Die Designvorgaben erfordern, dass ich einen Rahmen schaffe, in dem alle Routing-Informationen, Produzenten, Konsumenten, Endpunkte usw. Teil der camel-context.xml sein sollten.
Eine Person sollte in der Lage sein, eine solche Datei zu modifizieren und die bestehende Route vollständig zu ändern, ohne den Java-Code zur Verfügung zu haben (der Java-Code würde nicht zur Verfügung gestellt werden, sondern nur das kompilierte Jar).
Zum Beispiel in One setup, Bohne A ->Bohne B->Bohne C->Datei->E-Mail. in einem anderen Bohne B->Bohne A->Bohne C->ftp->Datei->E-Mail Wir haben verschiedene Ansätze ausprobiert, aber wenn die ursprüngliche Bean nicht als Java-DSL implementiert ist, wird die Die Nachrichtenrate ist sehr hoch, da camel im ersten Beispiel ständig Bean A und im zweiten Beispiel Bean B aufruft. (sie sind die Quelle).
Bean A und Bean B generieren Nachrichten und sind ereignisgesteuert. Tritt das gewünschte Ereignis ein, senden die Beans eine Benachrichtigung aus.
Meine Transformationen sind sehr einfach und ich benötige die Leistungsfähigkeit der Java-DSL überhaupt nicht. Zusammenfassend habe ich die folgenden Fragen:
1) Wie kann ich unter Berücksichtigung der oben genannten Einschränkungen sicherstellen, dass alle Routing-Informationen, einschließlich der Zieladressen, Teil der Camel-Kontextdatei sind?
2) Gibt es Beispiele, die ich mir ansehen kann, um die Routing-Informationen völlig unabhängig vom Java-Code zu halten?
3) Wie kann ich sicherstellen, dass Camel nicht ständig die ursprüngliche Bean aufruft?
4) Ruft Camel ständig nur die verursachende Bean oder jede Bean auf, an die es & Nachrichten sendet, unabhängig von der Position der Bean in der gesamten Nachrichtenwarteschlange?
Mir sind die Möglichkeiten ausgegangen, dies auf verschiedene Weise einzurichten. Für jede Hilfe wäre ich dankbar.