有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在两个或多个noSQL数据库上处理事务的方法是什么?

我们有以下要求:

  1. 我们将数据存储在Cassandra中,然后在弹性搜索中索引相同的数据(或部分数据)
  2. 问题是,如果在弹性搜索中插入时出现问题,则应回滚在Cassandra中插入的数据

基本上,我们希望在多个NoSQL数据库上进行事务处理。有没有一种方法可以在Java(Spring)中实现


共 (1) 个答案

  1. # 1 楼答案

    没有跨多个NoSQL数据库执行事务的标准方法,Spring也不支持它

    我想到了两种方法:

    1. 您应该只使用一个数据库来实现它。 例如,在您的案例中,您可以使用Cassandra在节点、数据中心或所有数据中心级别执行事务。并在Cassandra事务成功后异步向弹性搜索发送数据

    2. 但如果您必须这样做,我建议您使用Redis来获取全局分布式事务锁。请注意,这是一个非常昂贵的操作,您需要自己处理故障和回滚