ECONNREFUSED 使用 node.js 连接到远程 Cassandra 数据库
ECONNREFUSED connecting to remote Cassandra db with node.js
我正在使用 express-cassandra 版本 0.5.4 连接到我托管的 aws cassandra 数据库。我有权访问,但无论我更改什么,我都会收到 ECONNREFUSED
这是正在连接的 express-cassandra 的片段,它是文档中的标准片段。
models.setDirectory(__dirname + '/../models').bind({
clientOptions: {
contactPoints: [process.env.Cluster1Pub,process.env.Cluster2Pub,process.env.Cluster3Pub],
protocolOptions: {port: 9042},
keyspace: process.env.keyspace
},
ormOptions: {
defaultReplicationStrategy : {
class: 'NetworkTopologyStrategy',
replication_factor: 3
},
dropTableOnSchemaChange: false,
dontCreateKeyspace: true
}
},function(err) {
if(err) console.log(err.message);
else console.log(models.timeuuid());
});
试试这些设置
更改rpc_address:0.0.0.0
broadcast_rpc_address: 1.2.3.4
参考:"All host(s) tried for query failed" Error
如果您尝试连接到位于 docker 容器内的 Cassandra 数据库。请在使用...
创建数据库容器时公开端口
docker run -d -it -p 9042:9042 -p 9041:9041 --name <container_name> <docker_image_id>
暴露数据库端口后,您将无法使用nodejs cassandra-driver 连接数据库...
const cassandra = require('cassandra-driver');
const client = new cassandra.Client({
contactPoints: ['h1', 'h2'],
localDataCenter: 'datacenter1',
keyspace: 'ks1'
});
const query = 'SELECT name, email FROM users WHERE key = ?';
client.execute(query, [ 'someone' ])
.then(result => console.log('User with email %s', result.rows[0].email));
我正在使用 express-cassandra 版本 0.5.4 连接到我托管的 aws cassandra 数据库。我有权访问,但无论我更改什么,我都会收到 ECONNREFUSED
这是正在连接的 express-cassandra 的片段,它是文档中的标准片段。
models.setDirectory(__dirname + '/../models').bind({
clientOptions: {
contactPoints: [process.env.Cluster1Pub,process.env.Cluster2Pub,process.env.Cluster3Pub],
protocolOptions: {port: 9042},
keyspace: process.env.keyspace
},
ormOptions: {
defaultReplicationStrategy : {
class: 'NetworkTopologyStrategy',
replication_factor: 3
},
dropTableOnSchemaChange: false,
dontCreateKeyspace: true
}
},function(err) {
if(err) console.log(err.message);
else console.log(models.timeuuid());
});
试试这些设置
更改rpc_address:0.0.0.0 broadcast_rpc_address: 1.2.3.4
参考:"All host(s) tried for query failed" Error
如果您尝试连接到位于 docker 容器内的 Cassandra 数据库。请在使用...
创建数据库容器时公开端口docker run -d -it -p 9042:9042 -p 9041:9041 --name <container_name> <docker_image_id>
暴露数据库端口后,您将无法使用nodejs cassandra-driver 连接数据库...
const cassandra = require('cassandra-driver');
const client = new cassandra.Client({
contactPoints: ['h1', 'h2'],
localDataCenter: 'datacenter1',
keyspace: 'ks1'
});
const query = 'SELECT name, email FROM users WHERE key = ?';
client.execute(query, [ 'someone' ])
.then(result => console.log('User with email %s', result.rows[0].email));