【发布时间】:2019-01-15 11:59:15
【问题描述】:
您好 Camel/jms 开发人员。 使用 Apache Camel amqp jms 连接器。并作为代理 ActiveMQ。
我的配置是完全默认的。
这是一个消费者代码示例:
public static void main(String[] args) throws Exception {
AMQPComponent amqpComponent = AMQPComponent.amqpComponent(HOST, USER, PWD);
CamelContext context = new DefaultCamelContext();
context.addComponent("amqp", amqpComponent);
context.start();
context.addRoutes(new RouteBuilder() {
@Override
public void configure() {
from("amqp:queue:1test.queue?transacted=true")
.to("stream:out")
.end();
}
});
Thread.sleep(20*1000);
context.stop();
}
很容易看到,我已经配置了交易消费者。对于 1test.queue。 当我运行它时,在日志中看到:
[main] INFO org.apache.camel.impl.DefaultCamelContext - 路由:route1 开始并使用:amqp://queue:1test.queue?transacted=true
[AmqpProvider :(1):[amqp:HOST2]] INFO org.apache.qpid.jms.sasl.SaslMechanismFinder - SASL 身份验证的最佳匹配是:SASL-PLAIN
[AmqpProvider :(1):[amqp:HOST2]] 信息 org.apache.qpid.jms.JmsConnection - 连接 ID:...:1 连接到远程代理:amqp:HOST2
[AmqpProvider :(2):[amqp:HOST2]] INFO org.apache.qpid.jms.sasl.SaslMechanismFinder - SASL 身份验证的最佳匹配是:SASL-PLAIN
[AmqpProvider :(2):[amqp:HOST2]] 信息 org.apache.qpid.jms.JmsConnection - 连接 ID:...:2 连接到远程代理:amqp:HOST2
[AmqpProvider :(3):[amqp:HOST2]] INFO org.apache.qpid.jms.sasl.SaslMechanismFinder - SASL 身份验证的最佳匹配是:SASL-PLAIN
[AmqpProvider :(3):[amqp:HOST2]] INFO org.apache.qpid.jms.JmsConnection - 连接 ID:...:3 连接到远程代理:amqp:HOST2
如果我从消费者那里删除 ?transacted=true
[AmqpProvider :(1):[amqp:HOST2]] INFO org.apache.qpid.jms.sasl.SaslMechanismFinder - SASL 身份验证的最佳匹配是:SASL-PLAIN
[AmqpProvider :(1):[amqp:HOST2]] INFO org.apache.qpid.jms.JmsConnection - 连接 ID:...:1 连接到远程代理:amqp:HOST2
它只出现一次。
如何解释这种行为?这通常适用于骆驼交易的消费者?
谢谢。
P.S 检查了this topic,但不确定如何将其映射到 Camel 现实。
【问题讨论】:
标签: java apache-camel jms activemq amqp