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 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 TimermonitorTimerprotected HashMap<T,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(Map<T,Integer> newProviders)voidclose()voiddisableProvider(T provider)voidenableProvider(T provider)longgetMonitorTimeout()TgetProvider()IntegergetWeight(T provider)protected voidrebuildProviderSelector()voidremoveProvider(T provider)voidremoveProviders(Collection<T> oldProviders)List<T>replaceProviders(Map<T,Integer> newProviders)voidsetMonitorTimeout(long monitorTimeout)
-
-
-
Field Detail
-
log
protected static final org.slf4j.Logger log
-
providers
protected final HashMap<T extends ServiceProvider,Integer> providers
-
monitorTimer
protected 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)
-
removeProvider
public void removeProvider(T provider)
-
removeProviders
public void removeProviders(Collection<T> oldProviders)
-
rebuildProviderSelector
protected void rebuildProviderSelector()
-
-