从名字上乍一看,Sentinel是阿里的限流工具,在实际的使用期间,还是有点复杂,对于小公司来并不适用,这也就是小编为何写这个工具的原因。目的就是让限流变得更加简单,最好达到零配置,和完全的无嵌入的整合到代码。但是为了让限流变得更容易监控和管理,小编不得不将初衷从非嵌入性,调整为半嵌入的方式。欢迎感兴趣或者喜欢研究的同学来使用,提出宝贵意见,供小编整改。或者一起来参与项目开发。(私信easy-sentinel: 获取github地址)
![7370ef48fde60cd5d63603345ef1ddfd.png](https://img-blog.csdnimg.cn/img_convert/7370ef48fde60cd5d63603345ef1ddfd.png)
EasySentinel
是一款专门为SpringBoot项目设计的限流组件,利用Redis+lua从而来实现高性能和分布式的能力。使用比较简单。通过半嵌入式的开发即可使用分布式注解。因为引用了Redis,并使用Redis作为注册中心,所以需要添加redis依赖。也正因为使用了Redis作为注册中心,所以天然的满足了分布式限流的能力.
![625ddcb5073d66d6f8c782fe8025f01e.png](https://img-blog.csdnimg.cn/img_convert/625ddcb5073d66d6f8c782fe8025f01e.png)
SpringBoot2版本之后官方强烈建议以此来替换spring-boot-starter-redis
![eaeabdde7c0ee4a3b386765ce4c652ef.png](https://img-blog.csdnimg.cn/img_convert/eaeabdde7c0ee4a3b386765ce4c652ef.png)
前端限流控制台
为了有更好的用户体验,控制台的开发已经提上日常。当前项目只有本人维护,欢迎前端或者后端的同学一起来参与
![0312a947e26fe63dfabbf35f6dd9d87a.png](https://img-blog.csdnimg.cn/img_convert/0312a947e26fe63dfabbf35f6dd9d87a.png)
开始引入依赖(以发布maven仓库,可直接下载)
![fc730c4064f59065e1533bef04602b20.png](https://img-blog.csdnimg.cn/img_convert/fc730c4064f59065e1533bef04602b20.png)
使用案例
只用将需要限制的接口加上@EasySentinel即可实现限流能力
通过Qps设置当前接口的qps,fallback指定限流后的备用方法 。
![9a1fa186853130666bb93368a1b48bb1.png](https://img-blog.csdnimg.cn/img_convert/9a1fa186853130666bb93368a1b48bb1.png)
备用方法高级案例
前面只通过fallback实现备用方法的执行,但是平时为了让控制层的代码尽量保证精简,EasySentinel也支持通过工具类的方式来,指定blockHandlerClass处理类的方法blockHandler
![7326a35c066dc1d4bac722ec1d5d8d1c.png](https://img-blog.csdnimg.cn/img_convert/7326a35c066dc1d4bac722ec1d5d8d1c.png)
压力测试
ab -n 14 -c 1 http://127.0.0.1:8889/user/lxchinesszz
![3ae828899d8b4674a20f1e6442717c45.png](https://img-blog.csdnimg.cn/img_convert/3ae828899d8b4674a20f1e6442717c45.png)