ControlRate Processor
描述
控制数据传输到后续处理器的速率。 如果您配置的时间持续时间非常小,那么油门的准确性会变差。 您可以通过减少产量持续时间来提高此准确性,但代价是为处理器分配更多任务。
标签
使用场景
限制数据发送到下游系统的速率,几乎没有突发
将 "Rate Control Criteria" 设置为 `data rate`。
将 "Time Duration" 属性设置为 `1 sec`。
配置 "Maximum Rate" 属性以指定每秒应允许通过多少数据。
例如,要允许每秒通过 8 MB,将 "Maximum Rate" 设置为 `8 MB`。
限制 FlowFile 发送到下游系统的速率,几乎没有突发
将 "Rate Control Criteria" 设置为 `flowfile count`。
将 "Time Duration" 属性设置为 `1 sec`。
配置 "Maximum Rate" 属性以指定每秒应允许通过多少个 FlowFiles。
例如,要允许每秒通过 100 个 FlowFiles,将 "Maximum Rate" 设置为 `100`。
拒绝超过特定速率的请求,几乎没有突发
将 "Rate Control Criteria" 设置为 `flowfile count`。
将 "Time Duration" 属性设置为 `1 sec`。
将 "Rate Exceeded Strategy" 属性设置为 `Route to 'rate exceeded'`。
配置 "Maximum Rate" 属性以指定每秒应允许通过多少个请求。
例如,要允许每秒通过 100 个请求,将 "Maximum Rate" 设置为 `100`。
如果在任意一秒内有超过 100 个请求进入,多余的请求将被路由到 `rate exceeded` 而非 `success`。
拒绝超过特定速率的请求,允许突发
将 "Rate Control Criteria" 设置为 `flowfile count`。
将 "Time Duration" 属性设置为 `1 min`。
将 "Rate Exceeded Strategy" 属性设置为 `Route to 'rate exceeded'`。
配置 "Maximum Rate" 属性以指定每分钟应允许通过多少个请求。
例如,要允许每秒通过 100 个请求,将 "Maximum Rate" 设置为 `6000`。
这将允许每分钟通过 6,000 个 FlowFiles,平均为每秒 100 个 FlowFiles。然而,这 6,000 个 FlowFiles 可能全部在最初的
几秒内到达,也可能在 60 秒的时间内陆续到达。因此,这给了我们每秒 100 个 FlowFiles 的平均速率,但允许数据突发。
如果在任意一分钟内有超过 6,000 个请求进入,多余的请求将被路由到 `rate exceeded` 而非 `success`。
属性
| 名称 | 默认值 | 可选值 | 描述 |
|---|---|---|---|
| Rate Control Criteria | data rate |
| 指示用于控制吞吐率的标准。 更改此值会重置速率计数器。 |
| Time Duration | 1 min | 最大速率所涉及的时间量。 更改此值会重置速率计数器。 | |
| Maximum Rate | | 数据应通过此处理器的最大速率。如果速率控制条件设置为 'data rate',此属性的格式应为正整数或数据大小(如 '1 MB')。 | |
| Maximum Data Rate | | 数据应通过此处理器的最大速率。此属性的格式应为数据大小(如 '1 MB'),表示每个时间持续时间的字节数。 | |
| Maximum FlowFile Rate | | FlowFile 应通过此处理器的最大速率。此属性的格式应为正整数,表示每个时间持续时间的 FlowFile 数量 | |
| Rate Exceeded Strategy | Hold FlowFile |
| 指定当超过最大数据速率时如何处理传入的 FlowFile。 |
| Rate Controlled Attribute | | 指定一个属性名称,当速率控制条件设置为 'attribute value' 时,其值将累积到速率限制。此属性引用的属性值必须为正长整型,否则 FlowFile 将被路由到 failure。如果速率控制条件未设置为 'attribute value',则忽略此值。更改此值会重置速率计数器。 | |
| Grouping Attribute | | 默认情况下,所有 FlowFile 使用单个\"节流\"。如果指定了此值,则为此属性名称指定的属性每个值使用单独的节流。更改此值会重置速率计数器。 |
关系 (Relationships)
| 名称 | 描述 | 自动终止 |
|---|---|---|
failure | 如果 FlowFiles 缺少必要的速率控制属性或该属性不是预期的格式,则它们将被路由到此关系 | 否 |
success | 正常情况下FlowFiles会被传输到这个关系中 | 否 |
状态管理
该组件不存储状态。
受限 (Restricted)
该组件不受限。
输入要求
该组件要求有传入连接。
详细说明
ControlRate
此 Processor 基于配置的速率对 FlowFile 的吞吐进行限流。速率既可以直接以数据速率(单位时间内的字节数) 指定,也可以通过统计 FlowFile 数量或特定 Attribute 的值来确定。无论哪种方式,计量周期都由 Time Duration 属性指定。
该 Processor 支持四种工作模式,由 Rate Control Criteria 属性决定。
| 模式 | 说明 |
|---|---|
| Data Rate(数据速率) | 累加经过此 Processor 的所有 FlowFile 的内容大小,并对 FlowFile 限流,确保整体数据速率(单位时间内的字节数)不超过上限。Maximum Rate 属性指定每个 Time Duration 内允许的最大字节数。 |
| FlowFile Count(FlowFile 计数) | 无论内容大小,均统计 FlowFile 的数量。在给定的 Time Duration 内,经过此 Processor 的 FlowFile 不超过指定数量。Maximum Rate 属性指定每个 Time Duration 内允许的最大 FlowFile 数量。 |
| Attribute Value(Attribute 值) | 累加某个 Attribute 的值以确定整体速率。Rate Controlled Attribute 属性指定要累加的 Attribute,该 Attribute 的值必须是整数。此模式与 FlowFile 的整体大小和数量无关。 |
| Data Rate or FlowFile Count(数据速率或 FlowFile 计数) | 此模式是 Data Rate 与 FlowFile Count 的组合。两种速率都会累加,任意一种速率超限即触发限流。必须同时指定 Maximum Data Rate 和 Maximum FlowFile Rate 属性,分别用于确定每个 Time Duration 内的内容大小上限和 FlowFile 数量上限。 |
如果指定了 Grouping Attribute 属性,所有速率都会按该 Attribute 的不同取值分别累加。例如,假设 Grouping Attribute 属性的值为 "city",那么所有 "city" Attribute 值为 "Albuquerque" 的 FlowFile 会 累计出一个速率,而所有 "city" Attribute 值为 "Boston" 的 FlowFile 会单独计算另一个速率。换言之, 会针对 Grouping Attribute 的每个唯一取值分别进行速率统计。