У меня есть два узла Cassandra, размещенные на двух IP. Теперь, когда я подключаюсь к одному из этих узлов через cassandra-driver в Node.js из Windows, я получаю ошибки типа «время ожидания соединения» и «узел недоступен». Однако я могу подключиться к этим узлам через 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
Что мне нужно изменить? Узлы работают нормально и могут соединять CQLSH друг с другом (в том числе и из удаленных сетей).