[英]Camel as a JMS client
我正在使用Camel开发客户端/服务器请求/回复系统。
客户端和服务器使用两个JMS队列进行通信:请求队列和响应队列。
服务器端具有骆驼路由,该骆驼路由消耗来自请求队列的JMS消息并同时处理消息。 使用响应队列将响应发送回客户端。
客户端将消息发送到JMS队列,然后等待响应。 我有两个问题:
客户端实际上是一个将由其他应用程序使用的库。 我也想在客户端使用Camel,但不知道如何将Camel用作“函数”,即在我拥有代码的某个时候,我需要做“将该对象发送到此骆驼路线”。 我怎样才能做到这一点?
骆驼是否有使用两个队列处理请求/答复的标准方法?
非常感谢你。
使用CamelContext中的ProducerTemplate 。 它要求您在客户端的某个地方保持驼峰环境。
您可以执行以下操作: producerTemplate.requestBody(myPayload,"jms:queue:whatever");
骆驼可以使用几种不同的方式处理请求回复。 使用显式答复队列(默认情况下不使用临时队列),您可以使用更快的独占模式: 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.