【发布时间】:2017-06-28 08:21:22
【问题描述】:
def throttle(elements: Int, per: FiniteDuration, maximumBurst: Int, mode: ThrottleMode): Repr[Out]
maximumBurst是指可以同时处理的元素个数吗?
【问题讨论】:
标签: scala akka akka-stream
def throttle(elements: Int, per: FiniteDuration, maximumBurst: Int, mode: ThrottleMode): Repr[Out]
maximumBurst是指可以同时处理的元素个数吗?
【问题讨论】:
标签: scala akka akka-stream
来自scaladoc:
Throttle 实现了令牌桶模型。有一个桶有一个 给定令牌容量(突发大小或最大突发)。代币落入 桶以给定的速率,可以“备用”以供以后使用 桶容量以允许一些突发性。每当流想要 发送一个元素,它从桶中获取与数量一样多的令牌 元素。如果没有,油门会等到桶 积累足够的代币。刚刚流式传输时存储桶已满 物化并开始。
maximumBurst 是上述模型中的令牌桶大小。
假设我们启动了一个节流流,并且接收器开始要求元素。油门阶段将在背压(使用整形模式)或失败(使用强制模式)之前发出maximumBurst。
所以我会说这是可以在没有限制的情况下处理的最大元素数。 “同时”处理永远不会成为流中的确切定义:)
【讨论】: