public class LimiterManager extends Object
| 限定符和类型 | 类和说明 |
|---|---|
static class |
LimiterManager.LimitConfigBean |
| 限定符和类型 | 字段和说明 |
|---|---|
private LimitFallbackProcesser |
fallbackProcesser |
private HashSet<String> |
ipWhitelist |
private LimitConfig |
limitConfig |
private HashSet<LimiterManager.LimitConfigBean> |
limitConfigBeans |
private static LimiterManager |
me |
private com.github.benmanes.caffeine.cache.Cache<String,com.google.common.util.concurrent.RateLimiter> |
rateLimiterCache |
private com.github.benmanes.caffeine.cache.Cache<String,Semaphore> |
semaphoreCache |
| 限定符 | 构造器和说明 |
|---|---|
private |
LimiterManager() |
| 限定符和类型 | 方法和说明 |
|---|---|
private void |
doInitFallbackProcesser() |
private void |
doParseConfig()
解析用户配置
|
private boolean |
ensureLegal(String packageOrTarget,
String type,
String rate)
确保配置合法
|
HashSet<LimiterManager.LimitConfigBean> |
getLimitConfigBeans() |
com.google.common.util.concurrent.RateLimiter |
getOrCreateRateLimiter(String resKey,
int rate) |
Semaphore |
getOrCreateSemaphore(String resKey,
int rate) |
void |
init() |
boolean |
isEnable() |
boolean |
isInIpWhitelist(String ip) |
LimiterManager.LimitConfigBean |
matchConfig(String packageOrTarget)
匹配用户配置
|
static LimiterManager |
me() |
void |
processFallback(String resource,
String fallback,
com.jfinal.aop.Invocation inv) |
private HashSet<LimiterManager.LimitConfigBean> limitConfigBeans
private HashSet<String> ipWhitelist
private LimitConfig limitConfig
private com.github.benmanes.caffeine.cache.Cache<String,Semaphore> semaphoreCache
private com.github.benmanes.caffeine.cache.Cache<String,com.google.common.util.concurrent.RateLimiter> rateLimiterCache
private LimitFallbackProcesser fallbackProcesser
private static LimiterManager me
private LimiterManager()
public static LimiterManager me()
public void init()
private void doInitFallbackProcesser()
private void doParseConfig()
public LimiterManager.LimitConfigBean matchConfig(String packageOrTarget)
packageOrTarget - public boolean isInIpWhitelist(String ip)
public com.google.common.util.concurrent.RateLimiter getOrCreateRateLimiter(String resKey, int rate)
public Semaphore getOrCreateSemaphore(String resKey, int rate)
public HashSet<LimiterManager.LimitConfigBean> getLimitConfigBeans()
private boolean ensureLegal(String packageOrTarget, String type, String rate)
packageOrTarget - type - rate - public boolean isEnable()
public void processFallback(String resource, String fallback, com.jfinal.aop.Invocation inv)
Copyright © 2024. All rights reserved.