首先是我想要做的基本出线
我一直在寻找确认每次从初始MQ读取消息时将创建新Exchange。我没有找到任何明确说明的内容,但我假设并且想知道是否有人可以确认或否认是这种情况。
交换只使用一次吗?并且路由是否为每条消息创建了一个新的交换?
谢谢!
编辑:当然,我的对然后立即谷歌搜索并找到答案。是的,它是唯一的,我们在这里找到了关于Exchange API的文档http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Exchange.html答案 0 :(得分:3)
在大多数情况下,为路径的每个使用者线程创建Exchange。一个例外(我所知道的)是使用“直接”端点,它将重用现有的Exchange(如果请求中已存在一个)......
例如,这两条路线链接在一起(通过直接)。第一条路线将创建一个新的Exchange并将其传递到第二条路线(请参阅记录的exchangeId)......
from("direct:route1").log("route1.exchangeId=${exchangeId}").to("direct:route2");
from("direct:route2").log("route2.exchangeId=${exchangeId}");
但是,如果您将它们与任何其他组件(seda,vm,activemq等)链接在一起,那么将为第二条路径创建一个新的Exchange。
from("seda:route1").log("route1.exchangeId=${exchangeId}").to("seda:route2");
from("seda:route2").log("route2.exchangeId=${exchangeId}");