zoukankan      html  css  js  c++  java
  • SOA架构之限流

    参考:

    服务限流

    1. 限流的作用

    限流主要的作用是保护服务节点或者集群后面的数据节点,防止瞬时流量过大使服务和数据崩溃(如前端缓存大量实效),造成不可用;还可用于平滑请求。

    2. 限流算法

    限流算法有两种:

    • 一种就是简单的请求总量计数
    • 一种就是时间窗口限流(一般为1s),如令牌桶算法和漏牌桶算法就是时间窗口的限流算法

    令牌桶算法(token Bucket)

    1. 系统以固定速率将令牌放入一个固定容量的令牌桶中,当令牌桶满时,系统将放弃添加新的令牌到桶中
    2. 客户的每一次请求都会消耗桶中的令牌,当桶中没有令牌时则放弃这次请求或者等待直到桶有新的令牌添加。

    漏桶算法(Leaky Bucket)

    漏桶算法和令牌桶算法思路一样


     
    1. 每一次请求都将令牌放入令牌桶中,如果桶满则放弃这次请求或者等到桶为空
    2. 系统以固定的速度消耗令牌直到桶为空

    可以看出来和令牌桶思路一样,只是角色互换,方向相反,实现上可以使用第三方框架来学习,也可以使用Java阻塞队列来实现,或者使用Redis的List来实现。

  • 相关阅读:
    Jenkins持续集成
    爬豆瓣保存到sqlite3
    爬豆瓣保存到Excel
    sqlite3数据库的增删查改
    用pandas和matplotlib对用户消费行为分析
    TCP请求
    fastjson
    断言
    将结果写入文件
    加解密
  • 原文地址:https://www.cnblogs.com/yeahwell/p/7518514.html
Copyright © 2011-2022 走看看