我在两个数据中心有一个cassandra环,下面是关键空间定义。当我试图带来本地数据中心的所有节点(aws)时,我期待数据存储驱动程序查询远程节点。但在这种情况下,我收到HostNotAvaialble异常。请帮忙。
Keyspace定义如下
CREATE KEYSPACE IF NOT EXISTS mystore_stress WITH replication = {
'class':'NetworkTopologyStrategy',
'sol':2,
'aws':2
};
我的会话创建如下:
public Session getSession() {
final Cluster cluster = Cluster.builder().addContactPoints(contactPoints)
.withRetryPolicy(DefaultRetryPolicy.INSTANCE)
.withLoadBalancingPolicy(new TokenAwarePolicy(new DCAwareRoundRobinPolicy("aws", 1)))
.withReconnectionPolicy(new ExponentialReconnectionPolicy(RECONNECTION_BASE_DELAY, RECONNECTION_MAX_DELAY))
.withSocketOptions(
new SocketOptions()
.setConnectTimeoutMillis(CONNECT_TIMEOUT_MILLIS)
.setReadTimeoutMillis(READ_TIMEOUT_MILLIS))
.withPort(PORT)
.build();
return cluster.connect();
}
答案 0 :(得分:0)
我怀疑您需要查看查询的一致性级别。如果它是法定人数,那么理想情况下你应该有3个重复。您可以在此处找到一些读取一致性的示例:
http://www.datastax.com/documentation/cassandra/2.0/cassandra/dml/dmlClientRequestsRead.html