Jboot是一个基于JFinal 和 undertow开发的微服务框架。提供了AOP、RPC、分布式缓存、限流、降级、熔断、统一配置中心、Opentracing数据追踪、metrics数据监控、分布式session、代码生成器、shiro安全控制、swagger api自动生成等功能。
备注,此版本没有bug修复哟 ~~~~~ 使用 J2Cache 只需要 maven 添加 J2cache的 依赖,同时配置 jboot.cache.type = j2cache 即可。 在很多高并发的场景下,使用Jboot做限流非常简单,具体demo如下: @RequestMapping("/limitation")
public class LimitationDemo extends JbootController {
public static void main(String[] args) {
Jboot.run(args);
}
public void index() {
renderText("render ok");
}
/**
* 所有的请求,每1秒钟只能访问一次
*/
@EnableRequestRateLimit(rate = 1)
public void request() {
renderText("request() render ok");
}
/**
* 所有的请求,每1秒钟只能访问一次
* 被限制的请求,自动跳转到 /limitation/request2
*/
@EnableRequestRateLimit(rate = 1, limitAction = LimitAction.REDIRECT, limitContent = "/limitation/request2")
public void request1() {
renderText("request1() render ok");
}
public void request2() {
renderText("request2() render ok");
}
/**
* 每个用户,每5秒钟只能访问一次
*/
@EnableUserRateLimit(rate = 0.2)
public void user() {
renderText("user() render ok");
}
/**
* 每个用户,每5秒钟只能访问一次
* 被限制的请求,渲染文本内容 "被限制啦"
*/
@EnableUserRateLimit(rate = 0.2, limitAction = LimitAction.TEXT, limitContent = "被限制啦")
public void user1() {
renderText("user1() render ok");
}
/**
* 每个IP地址,每5秒钟只能访问一次
*/
@EnableIpRateLimit(rate = 0.2)
public void ip() {
renderText("ip() render ok");
}
}关于限流更多的demo和用法参考:https://gitee.com/fuhai/jboot/tree/master/src/test/java/limitation 觉得Jboot还不错,请进入 https://gitee.com/fuhai/jboot 点击 star、fork支持。 |