繁体   English   中英

骆驼作为JMS客户端

[英]Camel as a JMS client

我正在使用Camel开发客户端/服务器请求/回复系统。

客户端和服务器使用两个JMS队列进行通信:请求队列和响应队列。

服务器端具有骆驼路由,该骆驼路由消耗来自请求队列的JMS消息并同时处理消息。 使用响应队列将响应发送回客户端。

客户端将消息发送到JMS队列,然后等待响应。 我有两个问题:

  1. 客户端实际上是一个将由其他应用程序使用的库。 我也想在客户端使用Camel,但不知道如何将Camel用作“函数”,即在我拥有代码的某个时候,我需要做“将该对象发送到此骆驼路线”。 我怎样才能做到这一点?

  2. 骆驼是否有使用两个队列处理请求/答复的标准方法?

非常感谢你。

  1. 使用CamelContext中的ProducerTemplate 它要求您在客户端的某个地方保持驼峰环境。

    您可以执行以下操作: producerTemplate.requestBody(myPayload,"jms:queue:whatever");

  2. 骆驼可以使用几种不同的方式处理请求回复。 使用显式答复队列(默认情况下不使用临时队列),您可以使用更快的独占模式: jms:queue:request.queue?replyTo=client1.replies&replyToType=Exclusive但每个客户端需要唯一的队列。 另一种选择是为所有客户端共享队列。 URI如下所示: activemq:queue:request.queue?replyTo=shared.replies 请注意:共享回复队列将使用JMS选择器为每个客户端选择消息,这将降低性能和往返延迟。

对于问题1,可以使用可以调用骆驼路线的骆驼生产者模板选项。 问题2的答案是肯定的,您可以参考http://camel.apache.org/request-reply.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM