public class WeightCluster<T extends ServiceProvider> extends java.lang.Object implements Cluster<T>
| Modifier and Type | Class and Description |
|---|---|
class |
WeightCluster.MonitoringTask |
class |
WeightCluster.ProviderSelector |
| Modifier and Type | Field and Description |
|---|---|
protected static org.slf4j.Logger |
log |
protected long |
monitorTimeout |
protected java.util.Timer |
monitorTimer |
protected java.util.HashMap<T,java.lang.Integer> |
providers |
protected WeightCluster.ProviderSelector |
providerSelector |
| Constructor and Description |
|---|
WeightCluster() |
| Modifier and Type | Method and Description |
|---|---|
void |
addProvider(T provider,
int weight) |
void |
addProviders(java.util.Map<T,java.lang.Integer> newProviders) |
void |
close() |
void |
disableProvider(T provider) |
void |
enableProvider(T provider) |
long |
getMonitorTimeout() |
T |
getProvider() |
java.lang.Integer |
getWeight(T provider) |
protected void |
rebuildProviderSelector() |
void |
removeProvider(T provider) |
void |
removeProviders(java.util.Collection<T> oldProviders) |
java.util.List<T> |
replaceProviders(java.util.Map<T,java.lang.Integer> newProviders) |
void |
setMonitorTimeout(long monitorTimeout) |
protected static final org.slf4j.Logger log
protected final java.util.HashMap<T extends ServiceProvider,java.lang.Integer> providers
protected java.util.Timer monitorTimer
protected long monitorTimeout
protected volatile WeightCluster.ProviderSelector providerSelector
public void close()
public long getMonitorTimeout()
public void setMonitorTimeout(long monitorTimeout)
public T getProvider() throws ServiceUnavailableException
getProvider in interface Cluster<T extends ServiceProvider>ServiceUnavailableExceptionpublic void enableProvider(T provider)
enableProvider in interface Cluster<T extends ServiceProvider>public void disableProvider(T provider)
disableProvider in interface Cluster<T extends ServiceProvider>public void addProvider(T provider, int weight)
public void addProviders(java.util.Map<T,java.lang.Integer> newProviders)
public void removeProvider(T provider)
public void removeProviders(java.util.Collection<T> oldProviders)
public java.util.List<T> replaceProviders(java.util.Map<T,java.lang.Integer> newProviders)
public java.lang.Integer getWeight(T provider)
protected void rebuildProviderSelector()