SOP 1.9.0 发布了,更新内容如下
- 限流改造 doc
- 优化参数绑定
1.9.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
测试用例验证限流情况
关于 SOP
SOP(Simple Open Platform)
一个开放平台解决方案项目,基于 Spring Cloud 实现,目标是能够让用户快速得搭建起自己的开放平台。
SOP 提供了两种接口调用方式,分别是:支付宝开放平台的调用方式和淘宝开放平台的调用方式。 通过简单的配置后,你的项目就具备了和支付宝开放平台的一样的接口提供能力。
SOP 封装了开放平台大部分功能包括:签名验证、统一异常处理、统一返回内容 、业务参数验证(JSR-303)、秘钥管理等,未来还会实现更多功能。
项目特点
- 接入方式简单,与老项目不冲突,老项目注册到注册中心,然后在方法上加上注解即可。
- 架构松耦合,业务代码实现在各自微服务上,SOP 不参与业务实现,这也是 Spring Cloud 微服务体系带来的好处。
- 扩展简单,开放平台对应的功能各自独立,可以自定义实现自己的需求,如:更改参数,更改签名规则等。
谁可以使用这个项目
- 有现成的项目,想改造成开放平台供他人调用
- 有现成的项目,想暴露其中几个接口并通过开放平台供他人调用
- 想搭一个开放平台新项目,并结合微服务的方式去维护
- 对开放平台感兴趣的朋友
以上情况都可以考虑使用 SOP