Apache camel,RabbitMQ, wie zum senden von Nachrichten/Objekte
Ich hoffe, jemand kann etwas Hilfe in dieser Angelegenheit.
Bin ich mit dem Kamel rabbitmq und für die Prüfung Zweck, die ich bin versucht zu senden eine Nachricht an die queue, die ich versuche, die Anzeige im rabbitmq-Schnittstelle und dann auch Lesen es zurück.
Aber ich kann nicht damit es funktioniert.
Was ich glaube, was funktioniert, ist, dass ich erstellt habe, in der exchange-Registerkarte des rabbitmq-management-interface, eine neue austauschen.
In meinem java-code, den ich senden Sie die Nachricht an, dass der Austausch. Wenn der code ausgeführt wird, ich kann es sehen einen Stachel im web-interface zeigen, dass etwas eingegangen ist, aber ich kann nicht sehen, was empfangen wurde.
Wenn ich versuche zu Lesen, kann ich nicht Lesen und bekomme die folgende errror:
< route: route(route2) [[[rabbitmq://192.168.59.103:5672/rt... wegen der Route route2 hat keine Ausgabe-Prozessoren. Man muss hinzufügen, Ausgänge auf der Strecke wie("log:foo").
Kann jemand geben Sie mir ein praktisches Beispiel, wie eine Nachricht zu senden,sehen Sie es in der web-Oberfläche und auch gelesen? jedes tutorial zeigt dieser Prozess wird auch geschätzt.
Danke
=================
DER ZWEITE TEIL
Die Fehler, die ich bekommen hab ist nun Folgendes:
Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; reason: {#method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILED - cannot redeclare exchange 'rhSearchExchange' in vhost '/' with different type, durable, internal or autodelete value, class-id=40, method-id=10), null, ""}
at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:67)
at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:33)
at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:343)
at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:216)
at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:118)
... 47 more
Habe ich folgende Einstellungen:
Bekomme ich diesen Fehler, ich glaube ich mache etwas falsch mit dem URI und ich haben zu definieren, die einige zusätzliche Parameter, die ich bin fehlt
Mein exchange ist der direkte Typ
Meine Warteschlange ist langlebig Typ
Und meine uri ist :
rabbitmq://192.168.59.105:5672/rhSearchExchange?username=guest&password=guest&routingKey=rhSearchQueue
alle Eingaben auf dieser?
Dank
Ich habe auf der Suche für ein ähnliches tutorial... ich kann veröffentlichen, Nachrichten an die exchange-aber ich kann es nicht konsumieren, Sie vom Kamel. Jedoch, für Ihre Fehler, ich denke, das problem ist Sie sind nicht die Weiterleitung der Nachricht überall. Zum Beispiel, ich glauben Sie, dass Ihre Konfiguration ist
from("rabbitmq:localhost...");
aber es sollte from("rabbitmq:localhost:...").to("foo:bar")
foo:bar
könnte so etwas wie mock:result
Danke für die Antwort. Ich verstehe, dass ich muss "zu" streamen/speichern Sie es irgendwo. Ich habe meinen thread aktualisiert, um zu zeigen, die Fehler, die ich jetzt zu bekommen. Wenn jemand, hat jemand Rat, wie dieses Problem zu lösen.
BITTE LESEN SIE DEN ZWEITEN TEIL ALS DAS IST DER FEHLER, ICH BIN IMMER JETZT
InformationsquelleAutor cpu2007 | 2014-10-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
So, ich war in der Lage, um dies herauszufinden, gestern hatte ich das gleiche (oder zumindest ähnliche) Probleme, die Sie hatten.
Den Optionen, die Sie haben in der RabbitMQ-URI muss exakt die Optionen, die auf Ihrem exchange erstellt wurde. Zum Beispiel, in meiner Konfiguration, ich hatte ein exchange genannt
tasks
das war ein direkter Typ war robust und nicht so konfiguriert wurde, um der automatischen Löschfunktion. Beachten Sie, dass der Standardwert für die option der automatischen Löschfunktion in der rabbitmq-camel-Komponente isttrue
. Zusätzlich wollte ich die Nachrichten mit der routing-Tastecamel
. Das bedeutet, dass meine rabbitmq-URI benötigt, um Aussehen:Darüber hinaus wollte ich Lesen aus einer vorhandenen Warteschlange, genannt
task_queue
habe anstatt rabbitmq camel-Komponente deklarieren, es ist ein eigenes queue. Daher brauchte ich auch, um eine zusätzliche Abfrage-parameter, so meine rabbitmq URI warDiese Konfiguration funktioniert für mich. Unten, ich habe ein paar Java-code-snippets aus dem code konfiguriert den Austausch und die Warteschlange und sendet eine Nachricht, und mein Kamel-Route-Konfiguration.
Exchange-und Queue-Konfiguration:
Nachricht senden:
Camel Route:
Ich hoffe, das hilft!
Ich bin mir nicht wirklich sicher um ehrlich zu sein. Ich bin gerade erst angefangen mit Camel / RabbitMQ, und ich habe nicht brauchte, um die Anzahl der Nachrichten, die ich bin, zu Lesen.
Ich werde prüfen, ob ich einen Weg finde, es zu tun. Danke für Eure Hilfe.
Jederzeit! Viel Glück!
was ist der Fehler, die Sie sehen? haben Sie versucht autoAck=false zusätzlich zu prefetchCount=1? Diese Weise broker geben nicht mehr Meldungen, bis Sie diese senden ein ack für die, die Sie gerade Bearbeiten
InformationsquelleAutor Jeff
Weil diese es als den top-Treffer auf Google für rabbitmq/camel integration fühle ich das Bedürfnis, fügen Sie ein bisschen mehr zu dem Thema. Der Mangel an einfach camel Beispiele ist erstaunlich, zu mir.
mvnrepository.com/artifact/org.apache.camel/camel-rabbitmq
InformationsquelleAutor slf