我有一个关于 Camel 中的 JMS 的问题。
所以我正在使用一些公司提供的JMS。但是这个 JMS 实现不提供池化连接工厂。
那么骆驼有默认的池连接实现吗?
或者它做一些微不足道的事情,比如:
1) 打开连接
2) 公开课
3) 读/写消息
4) 关闭会话
5) 关闭连接
因为如果相信我的日志骆驼就像我在第二种情况下提到的那样工作。
谢谢。
我有一个关于 Camel 中的 JMS 的问题。
所以我正在使用一些公司提供的JMS。但是这个 JMS 实现不提供池化连接工厂。
那么骆驼有默认的池连接实现吗?
或者它做一些微不足道的事情,比如:
1) 打开连接
2) 公开课
3) 读/写消息
4) 关闭会话
5) 关闭连接
因为如果相信我的日志骆驼就像我在第二种情况下提到的那样工作。
谢谢。
Camel 几乎使用 JmsTemplate(来自 Spring Framework)来发送消息。 ActiveMQs对JmsTemplate的思考
本质上,您确实适用于“生产”场景,除非底层 Jms 提供程序具有池连接工厂。如果您在 App Server 中运行 Spring 或 Camel,通常会出现这种情况。
如果您设置类似
from("jms:queue:QUEUE.IN").to("somewhere:over/the/rainbow");
然后一个或多个正在进行的消费者将处于活动状态,不会破坏每条消息的会话(只有在设置事务时才提交消息)。还可以为 JMS 请求/响应汇集响应侦听器。有关信息,请参阅camel.apache.org/jms。
但你是对的,如果你有一个远程(非池化)JMS 提供程序并且经常触发来自 Camel 的传出消息,这可能是一个性能问题。
使用spring CachingConnectionFactory。顺便提一句。您使用哪个 JMS 提供程序?