public class DCAwareRoundRobinPolicy extends Object implements LoadBalancingPolicy, CloseableLoadBalancingPolicy
RoundRobinPolicy, but its DC awareness incurs a slight overhead
so the latter should be preferred to this policy in that case.| Modifier and Type | Class and Description |
|---|---|
static class |
DCAwareRoundRobinPolicy.Builder
Helper class to build the policy.
|
| Constructor and Description |
|---|
DCAwareRoundRobinPolicy()
Deprecated.
builder() is the recommended way to build instances of this class. This constructor was preserved for
backward-compatibility purposes, it is equivalent to DCAwareRoundRobinPolicy.builder().build(). |
DCAwareRoundRobinPolicy(String localDc)
Deprecated.
builder() is the recommended way to build instances of this class. This constructor was preserved for
backward-compatibility purposes, it is equivalent to DCAwareRoundRobinPolicy.builder().withLocalDc(localDc).build(). |
DCAwareRoundRobinPolicy(String localDc,
int usedHostsPerRemoteDc)
Deprecated.
builder() is the recommended way to build instances of this class. This constructor was preserved for
backward-compatibility purposes, it is equivalent to
DCAwareRoundRobinPolicy.builder().withLocalDc(localDc).withUsedHostsPerRemoteDc(usedHostsPerRemoteDc).build(). |
DCAwareRoundRobinPolicy(String localDc,
int usedHostsPerRemoteDc,
boolean allowRemoteDCsForLocalConsistencyLevel)
Deprecated.
builder() is the recommended way to build instances of this class. This constructor was preserved for
backward-compatibility purposes, it is equivalent to
DCAwareRoundRobinPolicy.builder().withLocalDc(localDc).withUsedHostsPerRemoteDc(usedHostsPerRemoteDc).allowRemoteDCsForLocalConsistencyLevel().build(). |
| Modifier and Type | Method and Description |
|---|---|
static DCAwareRoundRobinPolicy.Builder |
builder()
Returns a builder to create a new instance.
|
void |
close()
Gets invoked at cluster shutdown.
|
HostDistance |
distance(Host host)
Return the HostDistance for the provided host.
|
void |
init(Cluster cluster,
Collection<Host> hosts)
Initialize this load balancing policy.
|
Iterator<Host> |
newQueryPlan(String loggedKeyspace,
Statement statement)
Returns the hosts to use for a new query.
|
void |
onAdd(Host host)
Called when a new node is added to the cluster.
|
void |
onDown(Host host)
Called when a node is determined to be down.
|
void |
onRemove(Host host)
Called when a node is removed from the cluster.
|
void |
onSuspected(Host host) |
void |
onUp(Host host)
Called when a node is determined to be up.
|
@Deprecated public DCAwareRoundRobinPolicy()
builder() is the recommended way to build instances of this class. This constructor was preserved for
backward-compatibility purposes, it is equivalent to DCAwareRoundRobinPolicy.builder().build().public DCAwareRoundRobinPolicy(String localDc)
builder() is the recommended way to build instances of this class. This constructor was preserved for
backward-compatibility purposes, it is equivalent to DCAwareRoundRobinPolicy.builder().withLocalDc(localDc).build().public DCAwareRoundRobinPolicy(String localDc, int usedHostsPerRemoteDc)
builder() is the recommended way to build instances of this class. This constructor was preserved for
backward-compatibility purposes, it is equivalent to
DCAwareRoundRobinPolicy.builder().withLocalDc(localDc).withUsedHostsPerRemoteDc(usedHostsPerRemoteDc).build().public DCAwareRoundRobinPolicy(String localDc, int usedHostsPerRemoteDc, boolean allowRemoteDCsForLocalConsistencyLevel)
builder() is the recommended way to build instances of this class. This constructor was preserved for
backward-compatibility purposes, it is equivalent to
DCAwareRoundRobinPolicy.builder().withLocalDc(localDc).withUsedHostsPerRemoteDc(usedHostsPerRemoteDc).allowRemoteDCsForLocalConsistencyLevel().build().public static DCAwareRoundRobinPolicy.Builder builder()
public void init(Cluster cluster, Collection<Host> hosts)
LoadBalancingPolicyinit in interface LoadBalancingPolicycluster - the Cluster instance for which the policy is created.hosts - the initial hosts to use.public HostDistance distance(Host host)
LOCAL.
For each remote datacenter, it considers a configurable number of
hosts as REMOTE and the rest is IGNORED.
To configure how many host in each remote datacenter is considered
REMOTE, see DCAwareRoundRobinPolicy(String, int).distance in interface LoadBalancingPolicyhost - the host of which to return the distance of.host.public Iterator<Host> newQueryPlan(String loggedKeyspace, Statement statement)
newQueryPlan in interface LoadBalancingPolicyloggedKeyspace - the keyspace currently logged in on for this
query.statement - the query for which to build the plan.public void onUp(Host host)
Host.StateListeneronUp in interface Host.StateListenerhost - the host that has been detected up.public void onSuspected(Host host)
onSuspected in interface Host.StateListenerpublic void onDown(Host host)
Host.StateListeneronDown in interface Host.StateListenerhost - the host that has been detected down.public void onAdd(Host host)
Host.StateListeneronAdd in interface Host.StateListenerhost - the host that has been newly added.public void onRemove(Host host)
Host.StateListeneronRemove in interface Host.StateListenerhost - the removed host.public void close()
CloseableLoadBalancingPolicyclose in interface CloseableLoadBalancingPolicy