在多个键空间的情况下,如何建立快速的Cassandra连接?

时间:2019-04-03 06:46:08

标签: node.js cassandra cassandra-driver express-cassandra

我正在为我的应用程序使用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客户选项一起使用时。

任何帮助将不胜感激!

0 个答案:

没有答案