Node.js 卡桑德拉

Node.js 卡桑德拉,node.js,cassandra,datastax,Node.js,Cassandra,Datastax,我们正在运行一个cassandra群集,它有3个节点,复制因子为2 我们的nodejs服务器是唯一查询集群的地方 我们正在使用datastax node.js驱动程序创建一个客户端,如下所示: var client = new cassandra.Client({contactPoints: [<contact point>], keyspace: 'test_keyspace', queryOptions: {consistency: cassandra.types.consist

我们正在运行一个cassandra群集,它有3个节点,复制因子为2

我们的nodejs服务器是唯一查询集群的地方

我们正在使用datastax node.js驱动程序创建一个客户端,如下所示:

var client = new cassandra.Client({contactPoints: [<contact point>], keyspace: 'test_keyspace', queryOptions: {consistency: cassandra.types.consistencies.two}});
2) 创建用户

var queries = [
    {
        query: "INSERT INTO test_keyspace.users (id, username, join_date) VALUES(?, ?, ?)",
        params: [userid, username, date]
    },
    {
        query: "INSERT INTO test_keyspace.username(id, username) VALUES(?, ?)",
        params: [userid, username]
    }
]

db.batch(queries, {prepare: true}, function(err){
    if(err){
        //api responds here with error
    } else {
        //api responds here with success
    }
});

问题是我的cassandra服务器上的时钟没有同步

你对一致性的理解是正确的。你能详细说明你的疑问以及结果如何不一致吗?一个常见的问题是查询时间戳,这可能导致更新的应用顺序与预期的不同。服务器时钟是否同步?服务器时间是否同步。为我如何查询、我期望什么以及我似乎正在接收什么的问题添加了一个示例。有趣的是,我认为用户名上的PK只是用户名,但它包含ID。看起来有可能用户表在帐户删除时没有被正确删除。这是在与插入类似的批处理查询中完成的。正在调查。结果表明,数据库中没有不一致,数据中存在不一致,这是由于部分失败的删除批处理查询导致的,该查询已成功从用户名表中删除,但未从用户表中删除,应使用retry解决。未通过重试解决,我重新同步了时钟,现在无法重现问题,因此这可能就是问题所在。
var queries = [
    {
        query: "INSERT INTO test_keyspace.users (id, username, join_date) VALUES(?, ?, ?)",
        params: [userid, username, date]
    },
    {
        query: "INSERT INTO test_keyspace.username(id, username) VALUES(?, ?)",
        params: [userid, username]
    }
]

db.batch(queries, {prepare: true}, function(err){
    if(err){
        //api responds here with error
    } else {
        //api responds here with success
    }
});