当前位置: 首页>>代码示例>>Java>>正文


Java ProxyManager类代码示例

本文整理汇总了Java中io.github.bucket4j.grid.ProxyManager的典型用法代码示例。如果您正苦于以下问题:Java ProxyManager类的具体用法?Java ProxyManager怎么用?Java ProxyManager使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


ProxyManager类属于io.github.bucket4j.grid包,在下文中一共展示了ProxyManager类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: testBucketRegistryWithKeyIndependentConfiguration

import io.github.bucket4j.grid.ProxyManager; //导入依赖的package包/类
@Test
public void testBucketRegistryWithKeyIndependentConfiguration() {
    BucketConfiguration configuration = Bucket4j.configurationBuilder()
            .addLimit(Bandwidth.simple(10, Duration.ofDays(1)))
            .buildConfiguration();

    ProxyManager<String> registry = newProxyManager();
    Bucket bucket1 = registry.getProxy(key, () -> configuration);
    assertTrue(bucket1.tryConsume(10));
    assertFalse(bucket1.tryConsume(1));

    Bucket bucket2 = registry.getProxy(anotherKey, () -> configuration);
    assertTrue(bucket2.tryConsume(10));
    assertFalse(bucket2.tryConsume(1));
}
 
开发者ID:vladimir-bukhtoyarov,项目名称:bucket4j,代码行数:16,代码来源:AbstractDistributedBucketTest.java

示例2: buildFilterConfig

import io.github.bucket4j.grid.ProxyManager; //导入依赖的package包/类
/**
 * This method  
 * 
 * @param config
 * @param cacheManager
 * @param expressionParser
 * @param beanFactory
 * @return
 */
public FilterConfiguration buildFilterConfig(Bucket4JConfiguration config, CacheManager cacheManager, ExpressionParser expressionParser, BeanFactory beanFactory) {
	
	FilterConfiguration filterConfig = new FilterConfiguration();
	filterConfig.setUrl(config.getUrl());
	filterConfig.setOrder(config.getFilterOrder());
	filterConfig.setStrategy(config.getStrategy());
	filterConfig.setHttpResponseBody(config.getHttpResponseBody());
	ProxyManager<String> buckets = Bucket4j.extension(JCache.class).proxyManagerForCache(jCache(config.getCacheName(), cacheManager));
	
	config.getRateLimits().forEach(rl -> {
		ConfigurationBuilder<?> configBuilder = Bucket4j.configurationBuilder();
		for (BandWidthConfig bandWidth : rl.getBandwidths()) {
			configBuilder = configBuilder.addLimit(Bandwidth.simple(bandWidth.getCapacity(), Duration.of(bandWidth.getTime(), bandWidth.getUnit())));
		};
		
		final ConfigurationBuilder<?> configBuilderToUse = configBuilder;
		RateLimitCheck rlc = (servletRequest) -> {
			
	        boolean skipRateLimit = false;
	        if (rl.getSkipCondition() != null) {
	        	skipRateLimit = skipCondition(rl, expressionParser, beanFactory).evalute(servletRequest);
	        } 
	        
	        if(rl.getExecuteCondition() != null && !skipRateLimit) {
	        	skipRateLimit = !executeCondition(rl, expressionParser, beanFactory).evalute(servletRequest);
	        }
	        
	        if(!skipRateLimit) {
	        	String key = getKeyFilter(filterConfig.getUrl(), rl, expressionParser, beanFactory).key(servletRequest);
	        	Bucket bucket = buckets.getProxy(key, () -> configBuilderToUse.buildConfiguration());
	        	
	        	ConsumptionProbe probe = bucket.tryConsumeAndReturnRemaining(1);
	        	
	        	return probe;
	        }
			return null;
			
		};
		filterConfig.getRateLimitChecks().add(rlc);
		
	});
	
	return filterConfig;
}
 
开发者ID:MarcGiffing,项目名称:bucket4j-spring-boot-starter,代码行数:54,代码来源:Bucket4JBaseConfiguration.java

示例3: newProxyManager

import io.github.bucket4j.grid.ProxyManager; //导入依赖的package包/类
@Override
protected ProxyManager<String> newProxyManager() {
    return Bucket4j.extension(getExtensionClass()).proxyManagerForMap(map);
}
 
开发者ID:vladimir-bukhtoyarov,项目名称:bucket4j,代码行数:5,代码来源:HazelcastTest.java

示例4: newProxyManager

import io.github.bucket4j.grid.ProxyManager; //导入依赖的package包/类
@Override
protected ProxyManager<String> newProxyManager() {
    return Bucket4j.extension(Infinispan.class).proxyManagerForMap(readWriteMap);
}
 
开发者ID:vladimir-bukhtoyarov,项目名称:bucket4j,代码行数:5,代码来源:InfinispanTest.java

示例5: newProxyManager

import io.github.bucket4j.grid.ProxyManager; //导入依赖的package包/类
@Override
protected ProxyManager<String> newProxyManager() {
    return Bucket4j.extension(JCache.class).proxyManagerForCache(getCache());
}
 
开发者ID:vladimir-bukhtoyarov,项目名称:bucket4j,代码行数:5,代码来源:AbstractJCacheTest.java

示例6: newProxyManager

import io.github.bucket4j.grid.ProxyManager; //导入依赖的package包/类
@Override
protected ProxyManager<String> newProxyManager() {
    return Bucket4j.extension(getExtensionClass()).proxyManagerForCache(cache);
}
 
开发者ID:vladimir-bukhtoyarov,项目名称:bucket4j,代码行数:5,代码来源:IgniteTest.java

示例7: proxyManagerForMap

import io.github.bucket4j.grid.ProxyManager; //导入依赖的package包/类
/**
 * Creates {@link HazelcastProxyManager} for specified map.
 *
 * @param map map for storing state of buckets
 * @param <T> type of keys in the map
 * @return {@link ProxyManager} for specified map.
 */
public <T extends Serializable> ProxyManager<T> proxyManagerForMap(IMap<T, GridBucketState> map) {
    return new HazelcastProxyManager<>(map);
}
 
开发者ID:vladimir-bukhtoyarov,项目名称:bucket4j,代码行数:11,代码来源:Hazelcast.java

示例8: proxyManagerForMap

import io.github.bucket4j.grid.ProxyManager; //导入依赖的package包/类
/**
 * Creates {@link InfinispanProxyManager} for specified cache.
 *
 * @param readWriteMap cache for storing state of buckets
 * @param <K> type of keys in the cache
 * @return {@link ProxyManager} for specified cache.
 */
public <K extends Serializable> ProxyManager<K> proxyManagerForMap(ReadWriteMap<K, GridBucketState> readWriteMap) {
    return new InfinispanProxyManager<>(readWriteMap);
}
 
开发者ID:vladimir-bukhtoyarov,项目名称:bucket4j,代码行数:11,代码来源:Infinispan.java

示例9: proxyManagerForCache

import io.github.bucket4j.grid.ProxyManager; //导入依赖的package包/类
/**
 * Creates {@link JCacheProxyManager} for specified cache.
 *
 * @param cache cache for storing state of buckets
 * @param <T> type of keys in the cache
 * @return {@link ProxyManager} for specified cache.
 */
public <T extends Serializable> ProxyManager<T> proxyManagerForCache(Cache<T, GridBucketState> cache) {
    return new JCacheProxyManager<>(cache);
}
 
开发者ID:vladimir-bukhtoyarov,项目名称:bucket4j,代码行数:11,代码来源:JCache.java

示例10: proxyManagerForCache

import io.github.bucket4j.grid.ProxyManager; //导入依赖的package包/类
/**
 * Creates {@link IgniteProxyManager} for specified cache.
 *
 * @param cache cache for storing state of buckets
 * @param <T> type of keys in the cache
 * @return {@link ProxyManager} for specified cache.
 */
public <T extends Serializable> ProxyManager<T> proxyManagerForCache(IgniteCache<T, GridBucketState> cache) {
    return new IgniteProxyManager<>(cache);
}
 
开发者ID:vladimir-bukhtoyarov,项目名称:bucket4j,代码行数:11,代码来源:Ignite.java

示例11: newProxyManager

import io.github.bucket4j.grid.ProxyManager; //导入依赖的package包/类
protected abstract ProxyManager<String> newProxyManager(); 
开发者ID:vladimir-bukhtoyarov,项目名称:bucket4j,代码行数:2,代码来源:AbstractDistributedBucketTest.java


注:本文中的io.github.bucket4j.grid.ProxyManager类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。