在apache camel中,哪些是将值从交换处理器传递到另一个处理器的最佳方式(以及为什么):
setProperty
方法。答案 0 :(得分:50)
Ben和Petter未提及的一个区别是,在Camel中处理消息的整个过程中,属性被安全地存储。相反,标头是消息协议的一部分,并且在路由期间可能不会传播。例如,JMS具有您可以存储为标题等的限制。
您可能需要阅读“Camel in Action”一书的免费第1章,因为它涵盖了使用Exchange,Message等的Camel概念。
答案 1 :(得分:27)
属性和标题几乎相同。但是,标头在某些组件(例如Jms)上转换为特定于协议的标头。所以,
答案 2 :(得分:20)
在处理器之间传递Exchange。它包含属性,IN消息和可选的OUT消息。这些中的每一个都能够存储对象数据,但通常是:
那就是说,它实际上取决于跟随处理器的组件。大多数都有一些使用端点所需的标题和/或正文值等。有关这些详细信息,请参阅具体的component page。
此外,在这些页面上更详细地解释了Exchange /消息:
http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Exchange.html
http://fusesource.com/docs/router/2.8/prog_guide/MsgFormats-Exchanges.html
答案 3 :(得分:2)
答案在这里:
属性:属性是Map,可能看起来像消息 头。主要区别在于它们的寿命:整体中存在属性 交换执行,而标题仅限于消息持续时间(和 在路由期间,消息可能会发生很大变化,因此在交换执行期间)。骆驼 本身可能会为某些用例添加一些属性。