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
命令示例支持以下选项:
名称 | 默认值 | 描述 |
| 抽样每个第 N 个消息。您只能使用频率或周期。 | |
|
| 抽样每 N 周期的消息。您只能使用频率或周期。 |
|
|
time 单元作为 JDK 中的 |