Problem mit Routing zwischen zwei Bohnen Apache Camel mit
-
27-09-2019 - |
Frage
mein Kamel Route ist unten angegeben
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring" >
<route>
<from uri="bean:SendClass?method=send" />
<to uri="jms:MyQueue" pattern="InOnly" />
</route>
<route>
<from uri="jms:MyQueue" />
<to uri="bean:recvClass?method=recv" />
</route>
</camelContext>
Die Sendemethode Nachrichten sendet, wenn sie von einer dritten Partei Pojo irgend unregelmäßigen intervals.But aktiviert, das Problem, das ich denke, ist Kamel Neustarten ist die Routen, sobald die Nachricht werden von recv Bohne und Zurücksenden die gleiche Botschaft (Hunderter von ihnen in einer Sekunde) empfangen .Ideally ich will es die Nachricht senden, wenn die Sendemethode wird aktiviert und eine neue Nachricht erstellt wurde (das heißt JMS Queue sollte einzigartige Botschaft werden muß) .Wie ich dies tun zu tun?
mögliche Lösungen zu sein:
- ist sie einige Attribute, die ich in dem
<from.../>
platzieren kann, dies zu tun? - schreibt einen Prozessor zum Filter einzigartiger Botschaft zwischen dem Sende Bean und der Warteschlange.
- Ist sie eine andere Art und Weise es von Routing, ohne den
<from uri="bean:..." />
mit
Dank sanre6
Lösung
Sie sollten nicht die erste Route haben. Wenn Sie das tun, dass Sie Camel sagen ständig rufen Sie die Sendemethode auf dieser Bohne und routen. Und daher, warum sehen Sie 100s von Nachrichten pro Sekunde.
Stattdessen sollten Sie einige Camel API aus Ihrem Bean-Code verwenden und die Nachricht an die JMS-Warteschlange senden. Zum Beispiel einer ProducerTemplate verwenden.