Apache camel,RabbitMQ comment envoyer des messages ou des objets
J'espère que quelqu'un peut fournir de l'aide sur cette question.
Je suis à l'aide de chameau rabbitmq et pour fins de test, je suis en train d'envoyer un message à la file d'attente, j'essaie de l'afficher dans rabbitmq interface et puis aussi le lire.
Cependant je ne peux pas obtenir ce travail.
Je crois que ce qui fonctionne, c'est que j'ai créé, dans l'onglet exchange de rabbitmq interface de gestion, un nouvel échange.
Dans mon code java j'ai envoyer le message à cet échange. Lorsque le code est exécuté, je peux voir un pic dans l'interface web montrant que quelque chose a été reçu, mais je ne vois pas ce qui a été reçu.
Quand j'essaie de le lire, je ne peux pas lire et obtient l'erreur:
< en route: Route(route2)[[De[rabbitmq://192.168.59.103:5672/rt... à cause de la Route route2 a pas de sortie des processeurs. Vous avez besoin d'ajouter des sorties à la route comme à l'("journal:foo").
Quelqu'un peut-il me fournir un exemple pratique sur la manière d'envoyer un message,le voir dans l'interface web et également le lire? tutoriel montrant ce processus sera également appréciée.
Merci
=================
DEUXIÈME PARTIE
L'erreur que je reçois maintenant est la suivante:
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
J'ai les paramètres suivants:
J'obtiens cette erreur, je crois que je suis en train de faire quelque chose de mal avec l'URI et j'ai de définir des paramètres supplémentaires que je suis absent
Mon échange est de type direct
Ma file d'attente est de type durable
Et mon uri est :
rabbitmq://192.168.59.105:5672/rhSearchExchange?username=guest&password=guest&routingKey=rhSearchQueue
des commentaires sur cette?
Grâce
J'ai été à la recherche d'un tutoriel similaire... je peux publier des messages à l'échange, mais je ne peux pas consommer de chameau. Toutefois, pour que votre erreur, je pense que le problème est que vous n'êtes pas le routage du message n'importe où. Par exemple, je crois que votre configuration est
from("rabbitmq:localhost...");
mais il devrait être from("rabbitmq:localhost:...").to("foo:bar")
foo:bar
pourrait être quelque chose comme mock:result
Merci pour la réponse. Je comprends que je dois utiliser "à" diffuser/sauvegarder quelque part. J'ai mis à jour mon fil pour montrer l'erreur que j'obtiens maintenant. Si quelqu'un a de quiconque des conseils sur la façon de résoudre ce problème.
VEUILLEZ LIRE À PARTIR DE LA DEUXIÈME PARTIE COMME C'EST L'ERREUR QUE JE REÇOIS MAINTENANT
OriginalL'auteur cpu2007 | 2014-10-20
Vous devez vous connecter pour publier un commentaire.
J'ai donc été en mesure de comprendre cela hier, j'ai eu le même (ou au moins similaires) les problèmes que vous avez eu.
Les options que vous avez dans le RabbitMQ URI doit correspondre exactement les options de votre échange a été créé. Par exemple, dans ma configuration, j'ai eu un échange appelé
tasks
qui est une conséquence directe de type, a été durable, et n'a pas été configuré pour la commande autodelete. Notez que la valeur par défaut pour l'option autodelete dans le rabbitmq chameau composant esttrue
. En outre, j'ai voulu obtenir les messages avec la clé de routagecamel
. Que signifie mon rabbitmq URI nécessaires pour ressembler à:En outre, j'ai voulu lire à partir de la file d'attente, appelé
task_queue
plutôt que d'avoir l'rabbitmq chameau composant de déclarer sa propre file d'attente. Donc, j'ai aussi besoin d'ajouter un paramètre de requête, de sorte que mes rabbitmq URI a étéCette configuration a fonctionné pour moi. Ci-dessous, j'ai ajouté un peu de code Java extraits à partir du code qui configure l'échange et la file d'attente et envoie un message, et mon Chameau Route de configuration.
D'échange et de configuration de File d'attente:
Envoyer un message:
Chameau Route:
J'espère que cela aide!
Je ne sais pas vraiment, pour être honnête. Je suis juste de commencer à dos de Chameau / RabbitMQ, et je n'ai pas besoin de limiter le nombre de messages que je suis en train de lire.
Je vais vérifier si je peux trouver un moyen de le faire. Je vous remercie pour votre aide.
À tout moment! Bonne chance!
quelle est l'erreur que vous voyez? avez-vous essayé autoAck=false en plus de prefetchCount=1? De cette façon, courtier de ne pas donner plus de messages jusqu'à ce que vous envoyer un accusé de réception pour celui que vous êtes de traitement
OriginalL'auteur Jeff
Parce que c'est le meilleur résultat sur Google pour rabbitmq/camel intégration, je ressens le besoin d'ajouter un peu plus à ce sujet. Le manque de simple chameau exemples est étonnant pour moi.
mvnrepository.com/artifact/org.apache.camel/camel-rabbitmq
OriginalL'auteur slf