ControlRate

文档中心 › 组件索引 › ControlRate

ControlRate Processor

类型全限定名:cn.org.acal.lynxus.processors.standard.ControlRate

所属 Bundle:cn.org.acal.lynxus:lynxus-standard-nar:2.11.8

描述

控制数据传输到后续处理器的速率。 如果您配置的时间持续时间非常小,那么油门的准确性会变差。 您可以通过减少产量持续时间来提高此准确性,但代价是为处理器分配更多任务。

标签

rate controlthrottleratethroughput

使用场景

限制数据发送到下游系统的速率,几乎没有突发

throttlelimitslow downdata rate
将 "Rate Control Criteria" 设置为 `data rate`。
将 "Time Duration" 属性设置为 `1 sec`。
配置 "Maximum Rate" 属性以指定每秒应允许通过多少数据。

例如,要允许每秒通过 8 MB,将 "Maximum Rate" 设置为 `8 MB`。

限制 FlowFile 发送到下游系统的速率,几乎没有突发

throttlelimitslow downflowfile rate
将 "Rate Control Criteria" 设置为 `flowfile count`。
将 "Time Duration" 属性设置为 `1 sec`。
配置 "Maximum Rate" 属性以指定每秒应允许通过多少个 FlowFiles。

例如,要允许每秒通过 100 个 FlowFiles,将 "Maximum Rate" 设置为 `100`。

拒绝超过特定速率的请求,几乎没有突发

throttlelimitslow downrequest rate
将 "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`。

拒绝超过特定速率的请求,允许突发

throttlelimitslow downrequest rate
将 "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 Criteriadata rate
  • data rate — 通过计算每个时间段传输的字节数来控制速率。
  • flowfile count — 通过计算每个时间段传输的 FlowFiles 数量来控制速率
  • attribute value — 通过累加每个时间段传输的指定属性的值来控制速率
  • data rate or flowfile count — 通过计算每个时间段传输的字节数和 FlowFiles 来控制速率; 如果满足任一阈值,则强制执行限制
指示用于控制吞吐率的标准。 更改此值会重置速率计数器。
Time Duration1 min最大速率所涉及的时间量。 更改此值会重置速率计数器。
Maximum Rate数据应通过此处理器的最大速率。如果速率控制条件设置为 'data rate',此属性的格式应为正整数或数据大小(如 '1 MB')。
Maximum Data Rate数据应通过此处理器的最大速率。此属性的格式应为数据大小(如 '1 MB'),表示每个时间持续时间的字节数。
Maximum FlowFile RateFlowFile 应通过此处理器的最大速率。此属性的格式应为正整数,表示每个时间持续时间的 FlowFile 数量
Rate Exceeded StrategyHold FlowFile
  • 保留 FlowFile — FlowFile 将保留在其输入队列中,直到数据速率降至配置的最大值以下,然后才被允许通过。
  • 路由到 'rate exceeded' — FlowFile 将被路由到 'rate exceeded' 关系。
指定当超过最大数据速率时如何处理传入的 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 的每个唯一取值分别进行速率统计。