diff --git a/README.md b/README.md index 686a08e9..e9438608 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,8 @@ SOP封装了开放平台大部分功能包括:签名验证、统一异常处 ![admin预览](https://images.gitee.com/uploads/images/2019/0401/202931_14cc7248_332975.png "admin7.png") +![admin预览](https://images.gitee.com/uploads/images/2019/0415/204659_f0dc8057_332975.png "admin8.png") + ## 工程说明 > 运行环境:JDK8,Maven3,Zookeeper diff --git a/doc/docs/files/10092_接口限流.md b/doc/docs/files/10092_接口限流.md new file mode 100644 index 00000000..aea8962b --- /dev/null +++ b/doc/docs/files/10092_接口限流.md @@ -0,0 +1,12 @@ +# 接口限流 + +SOP提供了简单的接口限流策略: + +- 漏桶策略:每秒处理固定数量的请求,超出请求返回错误信息。 +- 令牌桶策略:每秒放置固定数量的令牌数,每个请求进来后先去拿令牌,拿到了令牌才能继续,拿不到则等候令牌重新生成了再拿。 + +如果一个接口设置了漏桶策略,假设接口每秒可处理5个请求,一秒内同时有6个请求进来,前5个接口是能够访问的,第六个请求将返回错误信息。 + +如果设置了令牌桶策略,桶的容量是5,那么每秒中生成5个令牌,同一时间有6个请求进来,那么前5个能成功拿到令牌继续,第六个则等待,令牌重新生成了再拿。 + +默认情况下接口的限流功能是关闭的,可在sop admin中配置并开启。功能在`路由管理-->限流管理`下。 diff --git a/sop-admin/sop-admin-front/pages/service/limitManager.js b/sop-admin/sop-admin-front/pages/service/limitManager.js index b9c29aa8..5c21a820 100644 --- a/sop-admin/sop-admin-front/pages/service/limitManager.js +++ b/sop-admin/sop-admin-front/pages/service/limitManager.js @@ -197,7 +197,7 @@ lib.importJs('../../assets/js/routerole.js') function showLimitTypeTip() { var leakyRemark = '漏桶策略:每秒处理固定数量的请求,超出请求返回错误信息。'; - var tokenRemark = '令牌桶策略:每秒放置固定数量的令牌数,不足的令牌数做等待处理,直到拿到令牌为止。'; + var tokenRemark = '令牌桶策略:每秒放置固定数量的令牌数,每个请求进来后先去拿令牌,拿到了令牌才能继续,拿不到则等候令牌重新生成了再拿。'; var content = '
' + leakyRemark + '
' diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/limit/LimitType.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/limit/LimitType.java index e7a768ee..66da4379 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/limit/LimitType.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/limit/LimitType.java @@ -11,7 +11,7 @@ public enum LimitType { */ LEAKY_BUCKET(1), /** - * 令牌桶策略,每秒放置固定数量的令牌数,不足的令牌数做等待处理,直到拿到令牌为止。 + * 令牌桶策略,每秒放置固定数量的令牌数,每个请求进来后先去拿令牌,拿到了令牌才能继续,拿不到则等候令牌重新生成了再拿。 */ TOKEN_BUCKET(2);