Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Cassandra从一个关闭的节点请求数据?_Node.js_Cassandra_Consistency - Fatal编程技术网

Node.js Cassandra从一个关闭的节点请求数据?

Node.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不应该为来自自动启动的节点的所有请求提供服务吗?[我希望卡桑德拉能处理此事

设置: 2个节点,Ec2Snitch
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地址。你可以启用日志记录来查看发生了什么:err
innerrors
将为你提供每个节点失败的详细信息。我仍然得到相同的异常。如果我的请求是连续的,我可以传递所有的请求。但是如果我在for循环中发出执行请求,我会出错,我在node.js上是一个幼稚的人要测试多个一起读取