akka流节流如何工作?

时间:2017-06-28 08:21:22

标签: scala akka akka-stream

def throttle(elements: Int, per: FiniteDuration, maximumBurst: Int, mode: ThrottleMode): Repr[Out]

maximumBurst是否意味着可以同时处理的元素数量?

1 个答案:

答案 0 :(得分:6)

来自scaladoc

  

Throttle实现令牌桶模型。有一个水桶   给定令牌容量(突发大小或maximumBurst)。令牌落入   以给定的速度进行铲斗,可以“保留”以供以后使用   铲斗容量允许一些突发性。每当溪流想要的时候   发送一个元素,从桶中获取尽可能多的令牌数量   元素。如果没有,节流阀等到桶   累积足够的代币。刚流时,水桶已满   实现并开始。

maximumBurst是上述模型中的令牌桶大小。 假设我们开始一个受限制的流,并且接收器开始要求元素。在加压(使用整形模式)或失败(使用强制模式)之前,油门阶段将发出maximumBurst个。{/ p>

所以我想说这是没有限制就可以处理的最大元素数。 “同时”处理永远不会成为流中的确切定义:)