diff --git a/doc/docs/_sidebar.md b/doc/docs/_sidebar.md index 7ee302a5..e9c7f049 100644 --- a/doc/docs/_sidebar.md +++ b/doc/docs/_sidebar.md @@ -1,27 +1,27 @@ -* [首页](/?t=1557902036067) +* [首页](/?t=1558492746635) * 开发文档 - * [快速体验](files/10010_快速体验.md?t=1557902036070) - * [项目接入到SOP](files/10011_项目接入到SOP.md?t=1557902036086) - * [新增接口](files/10020_新增接口.md?t=1557902036086) - * [业务参数校验](files/10030_业务参数校验.md?t=1557902036086) - * [错误处理](files/10040_错误处理.md?t=1557902036086) - * [编写文档](files/10041_编写文档.md?t=1557902036086) - * [接口交互详解](files/10050_接口交互详解.md?t=1557902036087) - * [easyopen支持](files/10070_easyopen支持.md?t=1557902036087) - * [使用签名校验工具](files/10080_使用签名校验工具.md?t=1557902036087) - * [ISV管理](files/10085_ISV管理.md?t=1557902036087) - * [路由授权](files/10090_路由授权.md?t=1557902036087) - * [接口限流](files/10092_接口限流.md?t=1557902036087) - * [SDK开发](files/10095_SDK开发.md?t=1557902036087) - * [使用SpringCloudGateway](files/10096_使用SpringCloudGateway.md?t=1557902036087) - * [应用授权](files/10097_应用授权.md?t=1557902036087) - * [更改数据节点名称](files/10099_更改数据节点名称.md?t=1557902036087) - * [对接前端](files/10100_对接前端.md?t=1557902036087) - * [自定义过滤器](files/10102_自定义过滤器.md?t=1557902036088) - * [文件上传](files/10104_文件上传.md?t=1557902036088) + * [快速体验](files/10010_快速体验.md?t=1558492746637) + * [项目接入到SOP](files/10011_项目接入到SOP.md?t=1558492746653) + * [新增接口](files/10020_新增接口.md?t=1558492746653) + * [业务参数校验](files/10030_业务参数校验.md?t=1558492746653) + * [错误处理](files/10040_错误处理.md?t=1558492746653) + * [编写文档](files/10041_编写文档.md?t=1558492746653) + * [接口交互详解](files/10050_接口交互详解.md?t=1558492746653) + * [easyopen支持](files/10070_easyopen支持.md?t=1558492746653) + * [使用签名校验工具](files/10080_使用签名校验工具.md?t=1558492746653) + * [ISV管理](files/10085_ISV管理.md?t=1558492746653) + * [路由授权](files/10090_路由授权.md?t=1558492746654) + * [接口限流](files/10092_接口限流.md?t=1558492746654) + * [SDK开发](files/10095_SDK开发.md?t=1558492746654) + * [使用SpringCloudGateway](files/10096_使用SpringCloudGateway.md?t=1558492746654) + * [应用授权](files/10097_应用授权.md?t=1558492746654) + * [更改数据节点名称](files/10099_更改数据节点名称.md?t=1558492746654) + * [对接前端](files/10100_对接前端.md?t=1558492746654) + * [自定义过滤器](files/10102_自定义过滤器.md?t=1558492746654) + * [文件上传](files/10104_文件上传.md?t=1558492746654) * 原理分析 - * [原理分析之@ApiMapping](files/90010_原理分析之@ApiMapping.md?t=1557902036088) - * [原理分析之路由存储](files/90011_原理分析之路由存储.md?t=1557902036088) - * [原理分析之如何路由](files/90012_原理分析之如何路由.md?t=1557902036088) - * [原理分析之文档归纳](files/90013_原理分析之文档归纳.md?t=1557902036088) - * [常见问题](files/90100_常见问题.md?t=1557902036088) + * [原理分析之@ApiMapping](files/90010_原理分析之@ApiMapping.md?t=1558492746654) + * [原理分析之路由存储](files/90011_原理分析之路由存储.md?t=1558492746654) + * [原理分析之如何路由](files/90012_原理分析之如何路由.md?t=1558492746655) + * [原理分析之文档归纳](files/90013_原理分析之文档归纳.md?t=1558492746655) + * [常见问题](files/90100_常见问题.md?t=1558492746655) diff --git a/doc/docs/files/10092_接口限流.md b/doc/docs/files/10092_接口限流.md index aea8962b..218d02cf 100644 --- a/doc/docs/files/10092_接口限流.md +++ b/doc/docs/files/10092_接口限流.md @@ -10,3 +10,35 @@ SOP提供了简单的接口限流策略: 如果设置了令牌桶策略,桶的容量是5,那么每秒中生成5个令牌,同一时间有6个请求进来,那么前5个能成功拿到令牌继续,第六个则等待,令牌重新生成了再拿。 默认情况下接口的限流功能是关闭的,可在sop admin中配置并开启。功能在`路由管理-->限流管理`下。 + +## 新版限流(1.8.0) + +1.8.0将之前的限流进行了改造,新的限流支持更多的限流方式。之前只能针对某个接口限流,新版限流可以在`路由ID(接口)、appKey、ip`上进行限流。 + +- 可针对接口进行限流,所有访问该接口的请求都被限流 +- 可针对appKey进行限流,某个appKey请求过来后,对他限流 +- 可针对IP进行限流,某个IP请求过来后,对他限流 + +此外还可以进行组合 + +- 可针对接口+appKey进行限流,这个appKey调用某个接口比较频繁,可以将它限制住 +- 可针对接口+IP进行限流,某个ip在频繁调用接口,可以将它限制住 + +由于存在组合情况,一个接口可能会配置多个限流规则。在这种情况下会优先取排序值小的那一条,如果排序值一样,则默认取第一条。 + +假设有下面几个限流规则: + +- 接口:`goods.get`, 排序值:1, 每秒可处理请求数:10 +- 接口:`goods.get`, appKey:xxxx, 排序值:0, 每秒可处理请求数:5 +- 接口:`goods.get`, ip:172.1.2.2, 排序值:2, 每秒可处理请求数:6 + +客户端调用接口:`http://open.domain.com/api?method=goods.get&app_key=xxxx`,客户端IP为`172.1.2.2` + +这种情况下上面三条限流规则都命中了,由于排序值小优先执行,因此第二条规则命中. + + +具体设置方式可在sop admin中配置,功能在`服务管理-->限流管理`下。执行`sop-test/src/test/java/com/gitee/sop/LimitDemoPostTest.java`测试用例验证限流情况 + +![限流配置](images/10092_1.png "10092_1.png") + +![限流配置](images/10092_2.png "10092_2.png") diff --git a/doc/docs/files/images/10092_1.png b/doc/docs/files/images/10092_1.png new file mode 100644 index 00000000..f8dc032f Binary files /dev/null and b/doc/docs/files/images/10092_1.png differ diff --git a/doc/docs/files/images/10092_2.png b/doc/docs/files/images/10092_2.png new file mode 100644 index 00000000..7c00d359 Binary files /dev/null and b/doc/docs/files/images/10092_2.png differ