架构
交换模式
登录后可跨设备保存划线和私人笔记登录
交换模式(Exchange Pattern)
在消息传递中,你可以使用两种消息交换模式(MEP)。
在企业集成模式中,它们是:
在 Camel 中,我们有一个 org.apache.camel.ExchangePattern 枚举,可以配置在消息交换的 exchangePattern 属性上,用于指明该消息交换是单向的事件消息(InOnly)还是请求-应答消息交换(InOut)。
交换模式的工作原理
交换模式是路由与组件端点之间的一种契约。它告诉组件调用方是否期望得到应答(InOut)还是不期望(InOnly)。
交换模式不会影响 EIP 和处理器在路由中的工作方式。诸如 setBody、transform、process 和 bean 等处理器始终作用于当前的消息体,而不受交换模式的影响。只有当交换到达对其起作用的生产者端点(即 to 步骤)时,交换模式才起作用。
大多数组件具有固定的交换模式——例如,HTTP 始终为 InOut(请求/应答),而 Kafka 始终为 InOnly(即发即忘)。对于这些组件,交换模式设置不会产生任何效果。
交换模式历来由有限的一组同时支持 InOnly 和 InOut 的组件使用,例如 JMS、SEDA 和 AMQP。这些组件使用该模式在即发即忘和请求/应答消息传递之间进行选择。例如,使用 JMS 时,InOnly 会向队列发送消息而不等待应答,而 InOut 则会设置一个临时应答队列(通过 JMSReplyTo)并等待响应。
例如,要覆盖 JMS 端点上的默认模式,可以在端点 URI 中使用 exchangePattern 参数,如下所示:
jms:myQueue?exchangePattern=InOut评论
登录后参与评论
正在加载评论…
KnowForge