0

我正在使用 express-cassandra 0.5.4 版连接到我托管的 aws cassandra db。我有权访问,但无论我更改什么,我都会收到 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()); });

4

2 回答 2

2

试试这些设置

更改 rpc_address: 0.0.0.0 broadcast_rpc_address: 1.2.3.4

参考:“所有主机尝试查询失败”错误

于 2016-05-07T01:58:28.273 回答
0

如果您尝试连接到位于 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));
于 2022-01-18T19:11:38.693 回答