SkillAgentSearch skills...

SnowJena

Distributed lock-free current limiting framework based on token bucket algorithm.基于令牌桶算法实现的分布式无锁限流框架。(欢迎Star,🚫禁止Fork)

Install / Use

/learn @onblog/SnowJena
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

:gift_heart:SnowJena

<img src="https://img.shields.io/badge/Language-Java8-green.svg" referrerPolicy="no-referrer"/><img src="https://img.shields.io/badge/Maven-3-green.svg" referrerPolicy="no-referrer"/><img src="https://img.shields.io/badge/License-Apache2.0-green.svg" referrerPolicy="no-referrer"/>

What

基于令牌桶算法实现的分布式无锁限流框架,支持动态配置规则,支持可视化监控,开箱即用。

Document

使用文档:中文|English

功能概要

| 限流 | 降级 | 授权 | 注解 | 监控 | | ------ | ------ | ------ | ------ | ------ | | 黑名单 | 白名单 | 控制台 | 分布式 | 高可用 |

设计模式

| 单例模式 | 观察者模式 | 工厂模式 | 建造者模式 | MVC模式 | | -------- | ---------- | ---------- | ---------- | ------- | | 全局配置 | 动态规则 | 生产限流器 | 限流规则 | 控制台 |

Quick Start

Maven

<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");
            }
        }
    }

}
View on GitHub
GitHub Stars838
CategoryDevelopment
Updated13d ago
Forks223

Languages

Java

Security Score

100/100

Audited on Mar 15, 2026

No findings