|
|
|
@ -30,12 +30,12 @@ SOP提供了简单的接口限流策略: |
|
|
|
|
- 接口:`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` |
|
|
|
|
客户端调用接口:`http://open.domain.com?method=goods.get&app_id=xxxx`,客户端IP为`172.1.2.2` |
|
|
|
|
|
|
|
|
|
这种情况下上面三条限流规则都命中了,由于排序值小优先执行,因此第二条规则命中. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
具体设置方式可在sop admin中配置,功能在`服务管理-->限流管理`下。执行`sop-test/src/test/java/com/gitee/sop/LimitDemoPostTest.java`测试用例验证限流情况 |
|
|
|
|
具体设置方式可在sop admin中配置,功能在`服务管理-->限流管理`下。执行`com.gitee.sop.test.LimitTest`测试用例验证限流情况 |
|
|
|
|
|
|
|
|
|
![限流配置](images/10092_1.png "10092_1.png") |
|
|
|
|
|
|
|
|
@ -65,15 +65,16 @@ spring.redis.host=127.0.0.1 |
|
|
|
|
spring.redis.port=6379 |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
- 在启动类中添加如下代码: |
|
|
|
|
- 在`com.gitee.sop.gateway.config.MyConfig`中添加如下代码: |
|
|
|
|
|
|
|
|
|
```java |
|
|
|
|
@Autowired |
|
|
|
|
private RedisTemplate redisTemplate; |
|
|
|
|
|
|
|
|
|
@PostConstruct |
|
|
|
|
public void doAfter() { |
|
|
|
|
public void after() { |
|
|
|
|
ApiConfig.getInstance().setLimitManager(new RedisLimitManager(redisTemplate)); |
|
|
|
|
... |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|