Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.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_Cassandra 3.0_Scylla_Cassandra Driver - Fatal编程技术网

如何将Node.js应用程序正确连接到Cassandra节点?

如何将Node.js应用程序正确连接到Cassandra节点?,node.js,cassandra,cassandra-3.0,scylla,cassandra-driver,Node.js,Cassandra,Cassandra 3.0,Scylla,Cassandra Driver,我在两个IP上托管了两个Cassandra节点。现在,当我从Windows通过Node.js中的cassandra驱动程序连接到其中一个节点时,会出现“连接超时”和“主机无法访问”之类的错误。但是,我能够从网络外部通过CQLSH连接到这些节点 我做错什么了吗?下面是示例代码 var cassandra = require('cassandra-driver'); var uuid = require('uuid') var client = new cassandra.Client({ con

我在两个IP上托管了两个Cassandra节点。现在,当我从Windows通过Node.js中的cassandra驱动程序连接到其中一个节点时,会出现“连接超时”和“主机无法访问”之类的错误。但是,我能够从网络外部通过CQLSH连接到这些节点

我做错什么了吗?下面是示例代码

var cassandra = require('cassandra-driver');

var uuid = require('uuid')
var client = new cassandra.Client({ contactPoints: ['(PUBLIC IP Here) X.X.X.X:9042'], localDataCenter: 'datacenter1', keyspace: 'ksks' });

function getAllPersons() {
    var query = 'SELECT * FROM person';
    return new Promise((resolve, reject) => {
        client.connect(function (err) {
            if (err) return console.error(err);
            else {
                client.execute(query, function (err, result) {
                    if(err)  {
                        reject([])
                    }
                    else {
                        if(result.rows.length) {
                            resolve(result.rows);
                        }
                        else {}
                            reject([])
                    }
                });
            }
        });
     });
}
在cassandra.yaml中,我有以下值:

listen_address: 10.0.0.4
native_transport_port: 9042
rpc_address: 10.0.0.4
rpc_port: 9160
api_port: 10000
api_address: 10.0.0.4

我需要改变什么?这些节点工作正常,可以相互连接(也可以从远程网络连接)。

如果使用公共IP远程访问群集,则配置不正确

此表可能有助于您在scylla.yaml中找到正确的IP:

https://docs.scylladb.com/operating-scylla/procedures/cluster-management/ec2_dc/#ec2-配置表


除非您在AWS上,否则不要使用Ec2Snitch。这张表只是参考资料

你最好的办法是用线连接