8.17. sampling


sampling Throttler

抽样节流器允许您通过路由从流量提取交换示例。它被配置为一个抽样周期,其中 只允许一个 交换通过。所有其他交换将停止。

默认情况下,示例周期为 1 秒。

Java DSL 示例

使用 sample () DSL 命令调用 sampler,如下所示:

// Sample with default sampling period (1 second)
from("direct:sample")
    .sample()
    .to("mock:result");

// Sample with explicitly specified sample period
from("direct:sample-configured")
    .sample(1, TimeUnit.SECONDS)
    .to("mock:result");

// Alternative syntax for specifying sampling period
from("direct:sample-configured-via-dsl")
    .sample().samplePeriod(1).timeUnits(TimeUnit.SECONDS)
    .to("mock:result");

from("direct:sample-messageFrequency")
    .sample(10)
    .to("mock:result");

from("direct:sample-messageFrequency-via-dsl")
    .sample().sampleMessageFrequency(5)
    .to("mock:result");

Spring XML 示例

在 Spring XML 中,使用 sample 元素调用 sampler,您可以在其中使用 samplePeriod 和 unit 属性指定抽样周期:

<route>
    <from uri="direct:sample"/>
    <sample samplePeriod="1" units="seconds">
        <to uri="mock:result"/>
    </sample>
</route>
<route>
    <from uri="direct:sample-messageFrequency"/>
    <sample messageFrequency="10">
        <to uri="mock:result"/>
    </sample>
</route>
<route>
    <from uri="direct:sample-messageFrequency-via-dsl"/>
    <sample messageFrequency="5">
        <to uri="mock:result"/>
    </sample>
</route>

选项

DSL 命令示例支持以下选项:

名称

默认值

描述

messageFrequency

 

抽样每个第 N 个消息。您只能使用频率或周期。

samplePeriod

1

抽样每 N 周期的消息。您只能使用频率或周期。

units

SECOND

time 单元作为 JDK 中的 java.util.concurrent.TimeUnit 的枚举。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.