Node.js 卡桑德拉
我们正在运行一个cassandra群集,它有3个节点,复制因子为2 我们的nodejs服务器是唯一查询集群的地方 我们正在使用datastax 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
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
}
});