cassandra 如何处理失败的插入?

cassandra how to handle failed inserts?

可能是某个用户注册了我的应用程序。

然后我做这件事:

const query1 = INSERT INTO users_by_email ... values (...)
const query2 = INSERT INTO users_by_id ... VALUES (...)

可能查询 2 失败了。那我是什么?或者如果所有数据都正确就不会失败?

在 Cassandra 中写入可能因多种原因而失败。例如,一个节点可能会出现故障,或者节点之间可能存在网络问题。因此,不要假设如果所有数据都正确或您的查询正确,写入就会成功。

回到您的问题,应用程序应该做什么。最简单的答案是再次尝试失败的查询。

还有一件事我想告诉你,如果你想同步两个表有相同的数据,你应该使用批处理

BEGIN BATCH
  INSERT INTO users_by_email ... values (...);
  INSERT INTO users_by_id ... VALUES (...);
APPLY BATCH ;

还有一点,批处理不能保证您的更改会回滚。它只会通知客户端查询集失败,因此您作为客户端应该重试您的批量查询。