我正试图围绕Apache Camel,在今天早上花了一些时间阅读在线Camel文档和Javadocs之后,我有一些问题似乎无法找到答案。< / p>
DefaultMessage
和DefaultExchange
中“偏离”?提前致谢。
答案 0 :(得分:2)
首先要做的事情:一个好的建议是阅读Camel in Action一书,它解释了大多数基本概念。网上有免费的第一章,解释了您提出的问题类型http://manning.com/ibsen/
端点引用component和某些特定于组件的选项,例如地址等。然后,端点可以(取决于组件)充当消费者(例如"servlet:path/to/web/service"
)或制片人(例如"http://localhost/path/to/web/service"
)或两者(例如"jms:queue:orderQueue"
)。
Camel消息中也有标题。交易所超过整个路线,交换属性也将保留整个路线。 Camel中的消息头是一个有点不同的概念。它们通常紧密映射到所使用的组件 - 即HTTP端点可能设置/更改标头(例如COOKIES等),而HTTP标头对交换属性没有影响,因为它们仅用于camel路由和camel逻辑。交换还包含其他非消息特定的事情,例如例外。
开发新的消息实现非常罕见。当您实现自己的组件/协议并且需要在消息中保留辅助对象的实例时,可能有一点延伸DefaultMessage
。即使在开发组件时,通常也不会这样做。我从来没有听说过Exchange的任何自定义实现,如果没有充分的理由你通常不会这样做。
答案 1 :(得分:2)
所有处理器都是端点是真的吗?有没有端点 那不是处理器吗?
事实并非如此。 Camel术语中的“处理器”是回调,它们是某种模式的一部分(如聚合器,消息通道或RoutingSlip)。 处理器会在路径中流动时收到消息,并对消息执行某些操作。邮件包含在 Exchange 中。
端点是路由接收消息(消费者端点)的位置以及发送已处理消息的位置(到端点)。因此,当您在路径中看到“来自”子句时,Camel引擎正在使用与中定义的端点实例相关联的“消费者”实例强>'条款。它实际上取决于端点实现是否在Camel上下文的“from”子句中出现给定端点的每个位置创建/重用新的使用者实例。
同样,当' To '子句中提到相同的端点时,将使用 Producer 实例(创建/重用)并保持与端点关联实例