Skip to content

Latest commit

 

History

History
executable file
·
34 lines (20 loc) · 1.04 KB

limiter.md

File metadata and controls

executable file
·
34 lines (20 loc) · 1.04 KB

限流

目录


重要的服务需要做流量控制,保证服务正常工作。常见的招数有如下:

令牌桶算法

  1. 每秒会有 r 个令牌放入桶中,或者说,每过 1/r 秒桶中增加一个令牌
  2. 桶中最多存放 b 个令牌,如果桶满了,新放入的令牌会被丢弃
  3. 当一个 n 字节的数据包到达时,消耗 n 个令牌,然后发送该数据包
  4. 如果桶中可用令牌小于 n,则该数据包将被缓存或丢弃

tu

时间漏桶

  1. 数据被填充到桶中,并以固定速率注入网络中,而不管数据流的突发性
  2. 如果桶是空的,不做任何事情
  3. 主机在每一个时间片向网络注入一个数据包,因此产生一致的数据流

tu

小结:

如果是一个服务希望限流的话,可以在服务的上游使用时间漏桶,在服务的接口上使用令牌桶。

调用方(使用漏桶)--> (使用令牌桶) 限流服务