gpt4 book ai didi

node.js - Cassandra 不一致

转载 作者:太空宇宙 更新时间:2023-11-03 22:32:24 24 4
gpt4 key购买 nike

我们正在运行一个具有 3 个 Node 、复制因子为 2 的 cassandra 集群。

我们的 Nodejs 服务器是查询该集群的唯一位置。

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

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

我的理解是,只要我们在继续下一个查询之前等待响应,将一致性参数设置为 2 就应该使我们的读/写保持一致,但这种情况并没有发生。

如果我们在请求数据之前等待响应,上面的内容是否可以保证一致性?

是否还有其他地方可能存在可能导致查询不一致的参数设置?

Cassandra v2.2.4Nodejs驱动版本v3.0.0

编辑 - 添加我正在做的事情的示例:

表格:

test_keyspace.users(id uuid, 用户名文本, join_date 时间戳, PRIMARY KEY(id))

test_keyspace.username(用户名文本,uuid id,主键(用户名,id))

创建用户时:

1) 检查用户名是否被占用

        var query = "SELECT * FROM test_keyspace.username WHERE username=?";
db.execute(query, [username], function(err, result){
if(err){
//fail check - api responds with internal server error
} else {
if(result.rows.length == 0){
//pass check, proceeed to #2
} else {
//fail check, username taken, respond with error
}
}
});

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 服务器上的时钟未同步。

关于node.js - Cassandra 不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34727316/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com