{"id":19993153,"url":"https://github.com/onblog/SnowJena","last_synced_at":"2025-05-04T12:30:53.521Z","repository":{"id":45275452,"uuid":"181322928","full_name":"onblog/SnowJena","owner":"onblog","description":"Distributed lock-free current limiting framework based on token bucket algorithm.基于令牌桶算法实现的分布式无锁限流框架。（欢迎Star，🚫禁止Fork）","archived":false,"fork":false,"pushed_at":"2023-12-05T22:21:26.000Z","size":2928,"stargazers_count":831,"open_issues_count":3,"forks_count":223,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-04-09T04:03:45.819Z","etag":null,"topics":["cas","springboot","springboot2","springcloud"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/onblog.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-04-14T14:41:11.000Z","updated_at":"2025-02-21T13:11:53.000Z","dependencies_parsed_at":"2024-10-29T19:26:22.365Z","dependency_job_id":null,"html_url":"https://github.com/onblog/SnowJena","commit_stats":{"total_commits":4,"total_committers":2,"mean_commits":2.0,"dds":0.25,"last_synced_commit":"007fb33477729ad00d2c1cedd523ddf90121dfd0"},"previous_names":["yueshutong/spring-boot-starter-current-limiting"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onblog%2FSnowJena","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onblog%2FSnowJena/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onblog%2FSnowJena/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onblog%2FSnowJena/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/onblog","download_url":"https://codeload.github.com/onblog/SnowJena/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252334157,"owners_count":21731349,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cas","springboot","springboot2","springcloud"],"created_at":"2024-11-13T04:52:29.191Z","updated_at":"2025-05-04T12:30:48.511Z","avatar_url":"https://github.com/onblog.png","language":"Java","funding_links":[],"categories":["Java","容错组件"],"sub_categories":[],"readme":"# :gift_heart:SnowJena\n\n\u003cimg src=\"https://img.shields.io/badge/Language-Java8-green.svg\" referrerPolicy=\"no-referrer\"/\u003e\u003cimg src=\"https://img.shields.io/badge/Maven-3-green.svg\" referrerPolicy=\"no-referrer\"/\u003e\u003cimg src=\"https://img.shields.io/badge/License-Apache2.0-green.svg\" referrerPolicy=\"no-referrer\"/\u003e\n\n## What\n\n基于令牌桶算法实现的分布式无锁限流框架，支持动态配置规则，支持可视化监控，开箱即用。\n\n## Document\n\n使用文档：[中文](./CN_README.md)|[English](./EN_README.md)\n\n## 功能概要\n\n| 限流   | 降级   | 授权   | 注解   |  监控  |\n| ------ | ------ | ------ | ------ | ------ |\n| 黑名单 | 白名单 | 控制台 | 分布式 | 高可用 |\n\n## 设计模式\n\n| 单例模式 | 观察者模式 | 工厂模式   | 建造者模式 | MVC模式 |\n| -------- | ---------- | ---------- | ---------- | ------- |\n| 全局配置 | 动态规则   | 生产限流器 | 限流规则   | 控制台  |\n\n# Quick Start\n\n## Maven\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.github.onblog\u003c/groupId\u003e\n    \u003cartifactId\u003esnowjena-core\u003c/artifactId\u003e\n    \u003cversion\u003e4.0.0.RELEASE\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n## 本地限流\n\n```java\npublic class AppTest {\n    Logger logger = LoggerFactory.getLogger(getClass());\n\n    /**\n     * 本地限流\n     */\n    @Test\n    public void test1() {\n        // 1.配置规则\n        RateLimiterRule rateLimiterRule = new RateLimiterRuleBuilder()\n                .setLimit(1)\n                .setPeriod(1)\n                .setUnit(TimeUnit.SECONDS) //每秒令牌数为1\n                .build();\n        // 2.工厂模式生产限流器\n        RateLimiter limiter = RateLimiterFactory.of(rateLimiterRule);\n        // 3.使用\n        while (true) {\n            if (limiter.tryAcquire()) {\n                logger.info(\"ok\");\n            }\n        }\n    }\n\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonblog%2FSnowJena","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fonblog%2FSnowJena","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonblog%2FSnowJena/lists"}