Jboot v2.0-rc.8 发布,新增限流模块

Jboot 是一个基于 JFinal、JFinal-Undertow、Dubbo 等开发微服务框架,帮助开发者降低微服务开发门槛。Jboot v2.0-rc.8 主要是优化细节,并新增限流模块。

以下是限流的使用

使用方案1:通过配置来实现

jboot.properties
文件中定义如下:

jboot.limit.enable = true
jboot.limit.rule = /user*:tb:1,io.jboot.aop*.get*(*):tb:1
  • jboot.limit.enable : 限流功能的开关

  • jboot.limit.rule : 限流规则

规则说明:

  • 1、可以配置多个规则,每个规则用英文逗号隔开,以上配置了2个规则。

  • 2、规则分为三个部分,用冒号(:)隔开,分别是:资源、限流类型、限流参数

  • 3、限流的类型有2种、分别是:tb 和 cc。tb:TOKEN BUCKET(令牌桶),cc:CONCURRENCY(并发量)

  • 4、星号(*)匹配任意字符,也可以是空字符。

在以上配置中,配置了2个规则,分别是:

  • /user*:tb:1

  • io.jboot.aop*.get*(*):cc:1

第一个规则:匹配 /user
开头的所有url地址,每个 url 地址,1秒钟之内只允许访问1次。

第二个规则:匹配 io.jboot.aop
开头的所有包名,并且  get
开头的所有任意参数的方法。并发量为 1。

使用方案2:通过注解  @EnableLimit

例如:

@RequestMapping("/")
public class IndexController extends JbootController {

    @EnableLimit(rate = 1,fallback = "fallbackMethod")
    public void index() {
        renderText("index...." );
    }

    public void fallbackMethod(){
        renderText("fallback...");
    }
}

通过使用 @EnableLimit(rate = 1,fallback = "fallbackMethod")
在方法  index()
方法配置后,当用户访问: http://127.0.0.1:8080
时,1秒钟内只有一次访问到  index()
方法,若有多次访问后,自动调用降级放方法  fallbackMethod()
执行。

@EnableLimit
支持的配置如下:

  • resource : 资源名称(不配置的时候默认为方法名,Controller 默认为对应的 url 映射)

  • type:限流的类型,默认为令牌桶。

  • rate:限流的数值,必须配置

  • fallback:降级方法,若配置,此方法必须在当前的类下定义。

Jboot v2.0-rc.8 更新内容如下:

  • 新增:Limit限流模块,可以用于没有运维的时候进行代码配置限流和降级

  • 新增:WebSocketEndpoint 的配置支持 jboot.web.webSocketEndpoint

  • 新增:undertow.unHotSwapClassPrefix 配置的支持,用于排除某些类在RPC下热加载的问题

  • 优化:统一 JbootAppListener 的方法名,详情: https://gitee.com/fuhai/jboot/blob/v2.0/doc/docs/upgrade.md#%E4%BF%AE%E6%94%B9-jbootapplistener-%E7%9A%84%E6%96%B9%E6%B3%95%E5%90%8D

  • 修复:修复由于升级 JFinal 到 v3.6 后,导致 sql 模板无法正常加载的问题

  • 移除:ActionCache 模块,JFinal内部已经提供了类似功能

更多Jboot的功能,请移步: https://gitee.com/fuhai/jboot/

原文 

https://www.oschina.net/news/104362/jboot-2-0-rc8-released

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » Jboot v2.0-rc.8 发布,新增限流模块

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址