Tying it all together
In attempting to develop a comprehensive approach to handling failure, we will start by assuming you prefer consistency when possible, but want your application to remain available even if the desired consistency level cannot be satisfied. You are also willing to experience slower client response rather than denying requests.
With these ideas in mind, we can tie the concepts you have learned throughout this chapter together in a policy that answers this demand. Take a look at the following example, which makes use of the previously discussed features:
// defined at class level private String localDC = "DC1"; private ConsistencyLevel defaultCL = ConsistencyLevel.LOCAL_QUORUM; private Cluster cluster; LoadBalancingPolicy dcPolicy = DCAwareRoundRobinPolicy.builder() .withLocalDc(localDC) .withUsedHostsPerRemoteDc(2) .build(); // initialized once per application cluster = cluster.builder() .addContactPoints("10.10.10.1", "10.10.10.2", "10.10.10...