java–Apache驼峰,RabbitMQ如何发送消息对象

java–Apache驼峰,RabbitMQ如何发送消息对象,第1张

概述我希望有人可以就此事提供一些帮助.我正在使用camel rabbitmq并且出于测试目的我正在尝试向队列发送消息,我正在尝试在rabbitmq界面中显示该消息,然后再将其读回.但是,我不能让这个工作.我认为有用的是我在rabbitmq管理界面的交换选项卡中创建了一个新的交换.在我的java代码中,我将消息发送到该交换.当代码执行时,我可以看到Web界面中的峰

我希望有人可以就此事提供一些帮助.

我正在使用camel rabbitmq并且出于测试目的我正在尝试向队列发送消息,我正在尝试在rabbitmq界面中显示该消息,然后再将其读回.

但是,我不能让这个工作.

我认为有用的是我在rabbitmq管理界面的交换选项卡中创建了一个新的交换.
在我的java代码中,我将消息发送到该交换.当代码执行时,我可以看到Web界面中的峰值显示已收到某些内容但我看不到已收到的内容.
当我尝试阅读时,我无法阅读并得到以下错误:
<在路线:路线(路线2)[[从[rabbitmq://192.168.59.103:5672 / rt …因为路线route2没有输出处理器.您需要向路径添加输出,例如to(“log:foo”).

有人能为我提供一个关于如何发送消息的实际例子,在网络交流中看到它并阅读它吗?任何显示此过程的教程也将受到赞赏.

谢谢

=================
第二部分

我现在得到的错误如下:

@H_301_24@Caused by: com.rabbitmq.clIEnt.ShutdownSignalException: channel error; reason: {#method

我有以下设置:

我得到这个错误,我相信我做错了URI,我必须定义一些我缺少的额外参数
我的交换是直接的
我的队列是耐用型的
我的uri是:
的RabbitMQ://192.168.59.105:5672 / rhSearchExchange用户名=旅客&安培;密码=旅客&安培; routingKey = rhSearchQueue

对此有何看法?

谢谢

最佳答案所以我昨天能够解决这个问题,我遇到了同样(或至少类似的)问题.

RabbitMQ URI中的选项必须与创建交换的选项完全匹配.例如,在我的配置中,我有一个称为任务的交换,它是直接类型,持久且未配置为自动解除.请注意,rabbitmq camel组件中autodelete选项的默认值为true.另外,我想用路由密钥camel获取消息.这意味着我的rabbitmq URI需要看起来像:

@H_301_24@rabbitmq:localhost:5672/tasks?username=guest&password=guest&autoDelete=false&routingKey=camel

另外,我想从一个名为task_queue的现有队列中读取,而不是让rabbitmq camel组件声明它自己的队列.因此,我还需要添加一个额外的查询参数,所以我的rabbitmq URI是

@H_301_24@rabbitmq:localhost:5672/tasks?username=guest&password=guest&autoDelete=false&routingKey=camel&queue=task_queue

这个配置对我有用.下面,我从配置交换和队列的代码中添加了一些Java代码片段,并发送消息和我的Camel Route配置.

Exchange和队列配置:

@H_301_24@rabbitConnFactory = new ConnectionFactory();rabbitConnFactory.setHost("localhost");final Connection conn = rabbitConnFactory.newConnection();final Channel channel = conn.createChannel();// declare a direct,non autodelete exchange named 'tasks'    channel.exchangeDeclare("tasks","direct",true); // declare a durable,non exclusive,non autodelete queue named 'task_queue'channel.queueDeclare("task_queue",true,false,null); // bind 'task_queue' to the 'tasks' exchange with the routing key 'camel'channel.queueBind("task_queue","tasks","camel"); 

发送消息:

@[email protected]("tasks","camel",MessagePropertIEs.PERSISTENT_TEXT_PLAIN,"hello,world!".getBytes());

骆驼路线:

@H_301_24@@OverrIDepublic voID configure() throws Exception {    from("rabbitmq:localhost:5672/tasks?username=guest&password=guest&autoDelete=false&routingKey=camel&queue=task_queue")        .to("mock:result");}

我希望这有帮助! 总结

以上是内存溢出为你收集整理的java – Apache驼峰,RabbitMQ如何发送消息/对象全部内容,希望文章能够帮你解决java – Apache驼峰,RabbitMQ如何发送消息/对象所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1265207.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存