卡桑德拉请求从一个节点下来的数据?

设置:2个节点,Ec2Snitch
1节点UP 54.1xx.1xx.1xx

1节点向下54.1xx.2xx.1xx [故意]

Keyspace NetworkTopology复制因子2(两个节点都有数据)

现在我testing读取一致性级别一。

我得到“所有主机(S)尝试查询失败。第一个主机尝试,54.1xx.2xx.1xx:主机认为是closures,看到innerErrors”。
获取这个closures的节点。

为什么我得到这个exception? 不应该Cassandra服务所有请求从节点是自动升起? [我期待着卡桑德拉来处理它。]

或者我们应该处理一个DN(Down Normal)的节点,我该如何处理?

如果我手动使向下节点向上,我得到所有的回应,否则我得到上述错误的总前四分之一请求。

Cassandra的DataStax Node.js驱动程序中的默认负载平衡策略是带有DCAwareRoundRobinPolicy作为子策略的TokenAwarePolicy 。 DCAwareRoundRobinPolicy设置为默认使用0个远程节点。

如果本地节点出现故障,您可以将其更改为使用每个远程数据中心的1个节点。

 var localDc = "east1"; var remoteNodes = 1; var options = { policies: {loadBalancing: new DCAwareRoundRobinPolicy(localDc, remoteNodes)} }; var client = new Client(options); 
Interesting Posts