8

Apache Camel 路线中的“促销单位”或流程是什么?意思是,实际被路由的对象是什么?一个Message?一个Exchange

我问是因为我认为aRoute由 1+个Processor端点组成,并且 a Exchange(包含 a Message)实际上是跨所有端点路由的。

但它似乎Exchange可以同时具有 inbound 和 outbound Message,这表明消息可以通过交换(而不是通过处理器/端点移动的交换)。有人可以帮助澄清为什么交换有入站和出站消息,以及实际传递到每个处理器/端点的路由是什么?

4

1 回答 1

5

交换只是单个路由中消息的包装对象。

交换中的输入和输出消息用于处理不同的交换模式 (MEP)。

通常,这用于返回答案的处理器/端点(即请求/响应模式),在 Camel 中它被命名为 InOut。然后处理器/组件将从参数中读取请求并在In参数中设置响应Out。在路线的下一步中,Out 将变为 In。

如果您想在某处放置消息而不担心响应,则可以使用ExchangePattern.InOnly.

即使您在处理器中并且想要转换消息,您也可以对 In 消息进行操作,它将被复制到 Out。

这也在《骆驼行动》第 1 章中有所描述。

路由正在传递消息,而 Exchange 是一个访问对象,用于传递消息并访问一些全局元数据。

于 2013-01-07T13:37:59.257 回答