Node.js Cassandra从一个关闭的节点请求数据?
设置: 2个节点,Ec2SnitchNode.js Cassandra从一个关闭的节点请求数据?,node.js,cassandra,consistency,Node.js,Cassandra,Consistency,设置: 2个节点,Ec2Snitch 1个节点向上移动54.1xx.1xx.1xx 1个节点下降54.1xx.2xx.1xx[故意] 密钥空间网络拓扑复制因子为2 (两个节点都有数据) 现在我用一致性级别1测试了read Im获取“尝试查询的所有主机均失败。尝试的第一个主机,54.1xx.2xx.1xx:host被视为已关闭。请参阅innerErrors。”获取已关闭节点的此信息 为什么我会得到这个例外?Cassandra不应该为来自自动启动的节点的所有请求提供服务吗?[我希望卡桑德拉能处理此事
1个节点向上移动54.1xx.1xx.1xx
1个节点下降54.1xx.2xx.1xx[故意]
密钥空间网络拓扑复制因子为2 (两个节点都有数据) 现在我用一致性级别1测试了read Im获取“尝试查询的所有主机均失败。尝试的第一个主机,54.1xx.2xx.1xx:host被视为已关闭。请参阅innerErrors。”
获取已关闭节点的此信息 为什么我会得到这个例外?Cassandra不应该为来自自动启动的节点的所有请求提供服务吗?[我希望卡桑德拉能处理此事。] 或者我们应该处理一个DN节点(正常情况下) 我该怎么处理
如果我手动将Down节点设置为Up,我将获得所有响应,否则我将获得总请求数前1/4的上述错误。Cassandra的DataStax node.js驱动程序中的默认负载平衡策略为。 默认情况下,dcawarerRoundRobinPolicy设置为使用0个远程节点 如果本地节点出现故障,您可以将其更改为使用每个远程数据中心的1个节点
var localDc = "east1";
var remoteNodes = 1;
var options = {
policies: {loadBalancing: new DCAwareRoundRobinPolicy(localDc, remoteNodes)}
};
var client = new Client(options);
您使用的是什么客户端以及客户端知道哪些节点?我正在使用DataStax Node.js驱动程序for Cassandra`var reader=new Cassandra.client({联系点:['54.1xx.1xx.1xx.1xx.compute-1.amazonaws.com','54.1xx.1xx.compute-1.amazonaws.com',查询选项:{一致性:Cassandra types.consistency.any,},策略:{loadballing:new cassandra.policies.loadballing.dcawaroundrobinpolicy(localDc,remoteNodes)},},`您可以在client.connect之后检查发现了哪些节点,并检查发现时是否有问题:
client.hosts.keys()
hosts.keys()给我两个ip地址。你可以启用日志记录来查看发生了什么:errinnerrors
将为你提供每个节点失败的详细信息。我仍然得到相同的异常。如果我的请求是连续的,我可以传递所有的请求。但是如果我在for循环中发出执行请求,我会出错,我在node.js上是一个幼稚的人要测试多个一起读取