![](https://camo.githubusercontent.com/1a9afde388f64565096984bf1e5d152dfa0f54d118cbb237aade00259bb61968/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c616e67756167652d4a617661382d677265656e2e737667)
![](https://camo.githubusercontent.com/8eed1aedfbc0f0465d8591df3d0261c03fbff8ab82ef36922059874c874807eb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d6176656e2d332d677265656e2e737667)
![](https://camo.githubusercontent.com/0b973f8722a2731031ad556c7924be4714fd0a120e72d97ffed27f1b5c39ddc8/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d417061636865322e302d677265656e2e737667)
基于令牌桶算法实现的分布式无锁限流框架,支持动态配置规则,支持可视化监控,开箱即用。
使用文档:中文|English
限流 |
降级 |
授权 |
注解 |
监控 |
黑名单 |
白名单 |
控制台 |
分布式 |
高可用 |
单例模式 |
观察者模式 |
工厂模式 |
建造者模式 |
MVC模式 |
全局配置 |
动态规则 |
生产限流器 |
限流规则 |
控制台 |
<dependency>
<groupId>com.github.onblog</groupId>
<artifactId>snowjena-core</artifactId>
<version>4.0.0.RELEASE</version>
</dependency>
public class AppTest {
Logger logger = LoggerFactory.getLogger(getClass());
/**
* 本地限流
*/
@Test
public void test1() {
// 1.配置规则
RateLimiterRule rateLimiterRule = new RateLimiterRuleBuilder()
.setLimit(1)
.setPeriod(1)
.setUnit(TimeUnit.SECONDS) //每秒令牌数为1
.build();
// 2.工厂模式生产限流器
RateLimiter limiter = RateLimiterFactory.of(rateLimiterRule);
// 3.使用
while (true) {
if (limiter.tryAcquire()) {
logger.info("ok");
}
}
}
}