SOA架构之限流
2024-09-01 16:09:33
参考:
1. 限流的作用
限流主要的作用是保护服务节点或者集群后面的数据节点,防止瞬时流量过大使服务和数据崩溃(如前端缓存大量实效),造成不可用;还可用于平滑请求。
2. 限流算法
限流算法有两种:
- 一种就是简单的请求总量计数
- 一种就是时间窗口限流(一般为1s),如令牌桶算法和漏牌桶算法就是时间窗口的限流算法
令牌桶算法(token Bucket)
- 系统以固定速率将令牌放入一个固定容量的令牌桶中,当令牌桶满时,系统将放弃添加新的令牌到桶中
- 客户的每一次请求都会消耗桶中的令牌,当桶中没有令牌时则放弃这次请求或者等待直到桶有新的令牌添加。
漏桶算法(Leaky Bucket)
漏桶算法和令牌桶算法思路一样
- 每一次请求都将令牌放入令牌桶中,如果桶满则放弃这次请求或者等到桶为空
- 系统以固定的速度消耗令牌直到桶为空
可以看出来和令牌桶思路一样,只是角色互换,方向相反,实现上可以使用第三方框架来学习,也可以使用Java阻塞队列来实现,或者使用Redis的List来实现。
最新文章
- Mysql数据库的一些命令_LInux
- JavaWeb 的学习一
- 像编程一样写文章—Markdown
- 腾讯 or 华为 =》 求职者的困惑
- vim颜色选择+按<;F9>;自动编译运行+其他基本配置(ubuntu)
- NOIP201103瑞士轮
- 关于.net中的脚本语言使用
- [git] github 使用简单记录
- DataTable.DataRow的复制
- GitHub使用(四) - 关于分支Branch
- app个推(透传消息)
- Python面试笔记一
- 一步一步安装SQL Server 2017
- AX2009里调用.NET DLL的效率问题
- 笔记-Android中打开各种格式的文件(apk、word、excel、ppt、pdf、音视频、图片等)
- Expression的烦恼
- C++雾中风景番外篇3:GDB与Valgrind ,调试代码内存的工具
- Linux下批量修改文件名(rename)
- CMake结合PCL库学习(3)
- background属性解释