建 网站 是软件开发,优秀软文营销案例,手机怎么样做网站,深圳品牌网站建设服务前言 相关系列
《分布式 目录》《分布式 令牌桶算法 总结》《分布式 令牌桶算法 问题》
参考文献
《【算法】令牌桶算法》
概述 简介 TBA Token Bucket Algorithm 令牌桶算法是一种流行于网络通信领域的流量控制/频率限制算法。令牌…前言 相关系列
《分布式 目录》《分布式 令牌桶算法 总结》《分布式 令牌桶算法 问题》
参考文献
《【算法】令牌桶算法》
概述 简介 TBA Token Bucket Algorithm 令牌桶算法是一种流行于网络通信领域的流量控制/频率限制算法。令牌桶算法的核心原理是通过一个概念上的“桶”来控制请求的访问频率这个桶中会保存一定数量的“令牌”每个请求只有获得令牌后才能正式访问系统否则就只能等待/放弃。而由于桶中的令牌会以固定的频率生成因此令牌桶算法就可以达到持续控制请求访问数量频率的效果。此外由于桶可以按配置预存一定数量的令牌因此在日常请求访问频率 令牌产生频率的情况下令牌桶算法还可以支持一定程度流量高/突发这是另一种限流算法“漏桶”所不具备的能力。
场景
限制网络带宽控制访问流量限制API频率限制API调用频率功能分级为不同级别的用户提供不同频率的服务任务调度限制任务执行频率以避免资源争用。
原理 概念
令牌桶用于存放指定数量令牌的虚拟容器通常使用Redis一类的中间件实现令牌填充频率系统向令牌桶中生成/置入令牌的频率一般是系统平均QPS/s令牌消耗每当请求到达时从桶中移除一个令牌以支持其访问系统。如果桶中没有令牌那么请求将被延迟/丢弃。
流程
系统持续以指定频率产生指定数量的令牌至于令牌桶中如果令牌桶已满则丢弃客户端访问系统在网关被拦截。随后网关会判断当前请求是否免限流是则直接访问如果当前请求不免限流则网关会从尝试从令牌桶中获取令牌。如果令牌不存在则拒绝请求否则允许请求按预期目的访问系统。