Package one.nio.cluster
Class WeightCluster<T extends ServiceProvider>
- java.lang.Object
-
- one.nio.cluster.WeightCluster<T>
-
- All Implemented Interfaces:
Cluster<T>
- Direct Known Subclasses:
HttpCluster
public class WeightCluster<T extends ServiceProvider> extends java.lang.Object implements Cluster<T>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classWeightCluster.MonitoringTaskclassWeightCluster.ProviderSelector
-
Field Summary
Fields Modifier and Type Field Description protected static org.slf4j.Loggerlogprotected longmonitorTimeoutprotected java.util.TimermonitorTimerprotected java.util.HashMap<T,java.lang.Integer>providersprotected WeightCluster.ProviderSelectorproviderSelector
-
Constructor Summary
Constructors Constructor Description WeightCluster()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddProvider(T provider, int weight)voidaddProviders(java.util.Map<T,java.lang.Integer> newProviders)voidclose()voiddisableProvider(T provider)voidenableProvider(T provider)longgetMonitorTimeout()TgetProvider()java.lang.IntegergetWeight(T provider)protected voidrebuildProviderSelector()voidremoveProvider(T provider)voidremoveProviders(java.util.Collection<T> oldProviders)java.util.List<T>replaceProviders(java.util.Map<T,java.lang.Integer> newProviders)voidsetMonitorTimeout(long monitorTimeout)
-
-
-
Field Detail
-
log
protected static final org.slf4j.Logger log
-
providers
protected final java.util.HashMap<T extends ServiceProvider,java.lang.Integer> providers
-
monitorTimer
protected java.util.Timer monitorTimer
-
monitorTimeout
protected long monitorTimeout
-
providerSelector
protected volatile WeightCluster.ProviderSelector providerSelector
-
-
Method Detail
-
close
public void close()
-
getMonitorTimeout
public long getMonitorTimeout()
-
setMonitorTimeout
public void setMonitorTimeout(long monitorTimeout)
-
getProvider
public T getProvider() throws ServiceUnavailableException
- Specified by:
getProviderin interfaceCluster<T extends ServiceProvider>- Throws:
ServiceUnavailableException
-
enableProvider
public void enableProvider(T provider)
- Specified by:
enableProviderin interfaceCluster<T extends ServiceProvider>
-
disableProvider
public void disableProvider(T provider)
- Specified by:
disableProviderin interfaceCluster<T extends ServiceProvider>
-
addProvider
public void addProvider(T provider, int weight)
-
addProviders
public void addProviders(java.util.Map<T,java.lang.Integer> newProviders)
-
removeProvider
public void removeProvider(T provider)
-
removeProviders
public void removeProviders(java.util.Collection<T> oldProviders)
-
replaceProviders
public java.util.List<T> replaceProviders(java.util.Map<T,java.lang.Integer> newProviders)
-
getWeight
public java.lang.Integer getWeight(T provider)
-
rebuildProviderSelector
protected void rebuildProviderSelector()
-
-