我正在为我的应用程序使用express-cassandra。到现在为止,我们只有一个键空间和一个数据中心,因此按照文档操作很容易。但是现在-考虑到我们正在创建一个新的数据中心-我们最终将拥有2个数据中心和其中一个键空间,我们称它k2将仅在第二个数据中心中被复制。我面临有关如何使用express cassandra配置相同内容以及如何在应用程序中正确使用它的问题。
单个键空间和数据中心的用法如下所示。
models.setDirectory(path.join(__dirname, '/../../api/models')).bind(
{
clientOptions: {
contactPoints: E.config.cassandraContactPoints,
/**
* Express cassandra consistency level options
* "{"any":0,"one":1,"two":2,"three":3,"quorum":4,"all":5,"localQuorum":6,"eachQuorum":7,"serial":8,"localSerial":9,"localOne":10}"
*/
protocolOptions: { port: 9042 },
keyspace: 'k1',
queryOptions: { consistency: models.consistencies.localOne }
},
ormOptions: {
defaultReplicationStrategy: {
class: 'NetworkTopologyStrategy',
replication_factor: 2
},
createKeyspace: false,
dropTableOnSchemaChange: false
}
},
function (err) {
if (err) {
throw err;
}
console.log('Connected to k1 keyspace');
postDBConnection(models, 'k1');
// Listen on provided port, on all network interfaces.
server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
}
);
我无法继续使用第二个键空间来连接它,该方法应该被认为是相同的方法(如果我错了,请纠正我)覆盖k1客户选项,等等,在将bind()与k2客户选项一起使用时。
任何帮助将不胜感激!