https://github.com/onblog/snowjena
Distributed lock-free current limiting framework based on token bucket algorithm.基于令牌桶算法实现的分布式无锁限流框架。(欢迎Star,🚫禁止Fork)
https://github.com/onblog/snowjena
cas springboot springboot2 springcloud
Last synced: 14 days ago
JSON representation
Distributed lock-free current limiting framework based on token bucket algorithm.基于令牌桶算法实现的分布式无锁限流框架。(欢迎Star,🚫禁止Fork)
- Host: GitHub
- URL: https://github.com/onblog/snowjena
- Owner: onblog
- License: apache-2.0
- Created: 2019-04-14T14:41:11.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-12-05T22:21:26.000Z (over 1 year ago)
- Last Synced: 2025-04-02T02:13:16.954Z (21 days ago)
- Topics: cas, springboot, springboot2, springcloud
- Language: Java
- Homepage:
- Size: 2.79 MB
- Stars: 831
- Watchers: 25
- Forks: 223
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# :gift_heart:SnowJena
## What
基于令牌桶算法实现的分布式无锁限流框架,支持动态配置规则,支持可视化监控,开箱即用。
## Document
使用文档:[中文](./CN_README.md)|[English](./EN_README.md)
## 功能概要
| 限流 | 降级 | 授权 | 注解 | 监控 |
| ------ | ------ | ------ | ------ | ------ |
| 黑名单 | 白名单 | 控制台 | 分布式 | 高可用 |## 设计模式
| 单例模式 | 观察者模式 | 工厂模式 | 建造者模式 | MVC模式 |
| -------- | ---------- | ---------- | ---------- | ------- |
| 全局配置 | 动态规则 | 生产限流器 | 限流规则 | 控制台 |# Quick Start
## Maven
```xml
com.github.onblog
snowjena-core
4.0.0.RELEASE```
## 本地限流
```java
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");
}
}
}}
```