如何使用node.js驱动程序在Cassandra中设置一致性级别?

时间:2016-12-11 12:03:57

标签: node.js cassandra

我使用node.js版本6.9.2和Cassandra 3.9。

我想在创建客户端实例时为我的所有查询设置LOCAL_QUORUM的一致性级别。

根据this documentation,我需要做以下几点。

const client = new Client({ queryOptions: { consistency: types.consistencies.quorum } });

我将仲裁的一致性级别更改为local_quorum。

const client = new Client({ queryOptions: { consistency: types.consistencies.local_quorum } });

但是,当我用这段代码启动我的应用程序时,收到错误。

ReferenceError: types is not defined

因此,在没有完全理解这个含义的情况下,我将文本设置为类型。

const client = new Client({ queryOptions: { consistency: text.consistencies.local_quorum } });

我收到了另一个错误。

ReferenceError: text is not defined

我的问题是:

types的价值应该是什么?

是否需要将quorum更改为local_quorum以保持LOCAL_QUORUM的一致性级别?如果不是,那么将LOCAL_QUORUM分配给我的查询的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

如果我没记错的话,类型一致性应该是types.consistencies.localQuorum:)

添加更多信息: 类型是在访问它的驱动程序要求内,您需要在

之前声明它
const cassandra = require('cassandra-driver');
const client = new cassandra.Client({ contactPoints: ['host1'] });
client.connect(function (err) {
  assert.ifError(err);
  client.execute(query, params, { consistency: cassandra.types.consistencies.localQuorum }, function (err) {
      //This callback will be called once it has been written in the number of replicas
      //satisfying the consistency level specified.
    });
});