Skip to content
Distributed lock-free current limiting framework based on token bucket algorithm.基于令牌桶算法实现的分布式无锁限流框架。
Java HTML Lua
Branch: master
Clone or download
Latest commit 76deeff Jan 13, 2020
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github
snowjean-spring-boot-starter Create README.md Nov 20, 2019
snowjena-annotation Update Jul 7, 2019
snowjena-common
snowjena-core volatile保证单例在多线程间的可用性 Jul 23, 2019
snowjena-monitor
snowjena-ticket-server 3.0.0版本新增注解支持 Jul 1, 2019
spring-boot-demo
spring-boot-starter-current-limiting
.gitattributes
.gitignore 0.0.1 Apr 21, 2019
CN_README.md README Jul 13, 2019
EN_README.md
LICENSE 初步测试完成 Jun 4, 2019
README.md Update README.md Jan 13, 2020
_config.yml Set theme jekyll-theme-cayman Jun 4, 2019
pom.xml

README.md

💝SnowJena

What

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

Document

使用文档:中文|English

功能概要

限流 熔断 降级 监控 注解
黑名单 白名单 控制台 分布式 高可用

设计模式

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

Quick Start

Maven

<dependency>
  <groupId>cn.yueshutong</groupId>
  <artifactId>snowjena-core</artifactId>
  <version>3.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");
            }
        }
    }

}

About

Email:yster@foxmail.com

Github:https://github.com/yueshutong/SnowJena

交流QQ群:781927207

如果帮助到你了,请不吝赞赏!谢谢!

You can’t perform that action at this time.