第 12 章 系统管理

摘要

系统管理模式描述了如何监控、测试和管理消息传递系统。

12.1. detour

detour

通过 第 3 章 企业集成模式简介 中的 Detour,如果满足控制条件,您可以通过附加步骤发送消息。它可用于在需要时开启额外的验证、测试、调试代码。

detour

Example

在本例中,我们基本上有一个路由,类似于 from ("direct:start").to ("mock:result"),在路由过程中有一个条件去到 mock:detour 端点。

from("direct:start").choice()
    .when().method("controlBean", "isDetour").to("mock:detour").end()
    .to("mock:result");

使用 Spring XML 扩展

<route>
  <from uri="direct:start"/>
    <choice>
      <when>
        <method bean="controlBean" method="isDetour"/>
	<to uri="mock:detour"/>
      </when>
    </choice>
    <to uri="mock:result"/>
  </split>
</route>

detour 是打开还是关闭状态,由 ControlBean 决定。因此,当删除时,当消息路由到 mock:detour 时,然后是 mock:result。当停止后,消息会被路由到 mock:result

有关详情请查看以下示例源:

camel-core/src/test/java/org/apache/camel/processor/DetourTest.java