# spring-boot-starter-current-limiting
**Repository Path**: gacl/spring-boot-starter-current-limiting
## Basic Information
- **Project Name**: spring-boot-starter-current-limiting
- **Description**: 基于令牌桶算法实现的SpringBoot无锁限流插件,支持方法级别、系统级别的限流,提供快速失败与CAS阻塞两种方案,开箱即用!
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 8
- **Created**: 2019-04-22
- **Last Updated**: 2022-05-25
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# :gift_heart:SnowJena


## What
基于令牌桶算法实现的分布式无锁限流框架,支持熔断降级,支持动态配置规则,支持可视化监控,开箱即用。
如果帮助到你了,请帮忙点亮Github右上角小星星,这将是我持续更新的动力!
## Document
使用文档:[中文](./CN_README.md)|[English](./EN_README.md)
## 功能概要
| 限流 | 熔断 | 降级 | 监控 | 注解 |
| ------ | ------ | ------ | ------ | ------ |
| 黑名单 | 白名单 | 控制台 | 分布式 | 高可用 |
## 设计模式
| 单例模式 | 观察者模式 | 工厂模式 | 建造者模式 | MVC模式 |
| -------- | ---------- | ---------- | ---------- | ------- |
| 全局配置 | 动态规则 | 生产限流器 | 限流规则 | 控制台 |
# Quick Start
## Maven
```xml
cn.yueshutong
snowjena-core
3.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");
}
}
}
}
```
# About
Blog:
Email:[yster@foxmail.com](mailto:yster@foxmail.com)
Github:
Gitee:
交流QQ群:781927207
如果帮助到你了,请不吝赞赏!谢谢!
