当前位置: 首页 > news >正文

Spring Cloud - 微服务限流的方式

1. 限流的目的

①  并发量较大(突发流量)

②  防止用户恶意刷接口

2. 限流的方式

①  Tomcat,可以设置最大连接数

②  Nginx,漏桶算法

   ①  控制速率(突发流量)

漏桶的配置:

语法解析:

命令 limnit_req_zone key zone rate

key:定义限流的对象,binary_remote_addr就是一种key,是基于客户端ip限流

zone:定义共享存储区存储访问信息,10m表示可以存储16万个ip地址访问信息

rate: 最大访问速率 rate=10r/s 表示每秒最多处理10个请求

burst = 20 :相当于桶的大小为20,能容纳20个请求

nodelay:快速处理模式

  ② 控制并发连接数

limit_coon perip 20 : 对应的key是 $binary_remote_addr,表示限制单个IP同时最多持有20个连接

limit_coon perserver 100 : 对应的key为$server_name,表示虚拟主机(server)同时能够处理的并发连接数的总数

③  网关,令牌桶算法

yml配置文件中,微服务路由设置添加局部过滤器 RequestRateLimiter,需要搭配Redis使用。

 key-resolver:定义限流的对象(ip、路径、参数),须有代码实现,使用spel表达式取值

replenishRate:令牌桶每秒填充的平均速率,每秒生成多少个令牌

urstCapacity:令牌桶的总容量

④  自定义拦截器

该方式不常用

http://www.dtcms.com/a/389797.html

相关文章:

  • 【智能系统项目开发与学习记录】ROS2基础(1)
  • 人工智能面试题:什么是CRF条件随机场
  • [x-cmd] 命令式交互、CLI/TUI 设计与 LLM
  • 基于AMBA总线协议的Verilog语言模型实现
  • 【Agent项目复现】OpenManus复现
  • 高校AI虚拟仿真实训平台软件解决方案
  • Vue3 + Ant Design Vue 实现统一禁用样式管理方案,禁用状态下已有值颜色区分(CSS 变量方案)
  • Ubuntu 24.04部署MongoDB
  • 8.1-spring 事务-声明式事务(使用)
  • Vue3》》组件继承 extends
  • 无人系统在边境管控的应用探讨
  • 一个典型的mysql数据库连接池初始化函数
  • novel英文单词学习
  • 数据结构:树及二叉树--堆(下)
  • TDengine 聚合函数 STDDEV 用户手册
  • ARM--启动代码
  • openharmony1.1.3 通过i2c进行温湿度采集
  • 虚拟仿真技术赋能国土资源监测教育,破解生态与安全人才培养困局
  • Vim 详细使用方法与运维工作常用操作
  • python基础数据分析与可视化
  • DeepSort学习与实践-原理学习
  • 贪心算法应用:多重背包启发式问题详解
  • 使用C#开发的控笔视频生成小程序
  • [重学Rust]之ureq
  • 水下机器人专用绝缘监测装置
  • C++中std::map容器中元素删除方法汇总
  • JavaEE 初阶第二十三期:网络原理,底层框架的“通关密码”(三)
  • 打工人日报#20250918
  • Git本地\远程分支区分查找
  • 从零开始手写机器学习框架:我的深度学习之旅——开启深度学习的底层探索