架构

延迟器

师成师成· 更新于 2026-09-28· 阅读 3 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

延迟器(Delayer)

延迟器用于减慢消息的处理速度。

它允许你为消息在路由中经过的每个步骤之间设置固定的延迟时间。这样可以更好地、缓慢地展示各个步骤的执行过程,避免被海量的日志输出所淹没。

使用延迟器

延迟器可以在两个层级进行配置:

  • Camel 上下文:全局
  • 路由:针对每条路由单独配置

使用 Spring XML 配置

按如下所示设置 <camelContext> 标签的 delayer 属性:

Spring XML

<camelContext id="camel" delayer="500" xmlns="http://camel.apache.org/schema/spring">
    <route>
        <from uri="direct:start"/>
        <to uri="mock:result"/>
    </route>
</camelContext>

使用 Java 配置

您可以通过在 CamelContext 上设置 delay 值来启用消息延迟,如下所示:

camelContext.setDelayer(200);

在路由级别进行配置

你也可以根据需要在 Camel 上下文和每条路由上分别进行配置。每条路由的设置会覆盖 Camel 上下文的设置。

例如,下面的路由只有第一条路由带有 200 毫秒的延迟器。

  • Java
  • XML
  • YAML
from("direct:start").delayer(200)
    .to("mock:result")
<route delayer="200">
 ...
</route>

<route>
 ...
</route>
- route:
    delayer: 200
    from:
      uri: direct:start
      steps:
        - to:
            uri: mock:result

评论

登录后参与评论

正在加载评论…