SOP 1.9.0 发布,可进行多维度限流

  

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

架构图

SOP架构图

猜你喜欢

转载自www.oschina.net/news/106889/sop-1-9-0-released
SOP