0

我有一种情况需要处理跨数据库事务。以下是详细要求:

我有 2 个 DB A 和 B

1) 两个 Db 最终必须同步。两个 Db 都必须是 EVENTUAL 一致性而不是严格一致性。A 记录可能存在于 DB A 中,并且可能在一段时间内不存在于 DB B 中。但最终它必须存在于两个数据库中

2)两个数据库都不支持事务/回滚

3) 一旦你在 Db B 中提交,你就不能撤销/删除它。但是你可以从 DB1 中删除一条记录

4)丢失一些数据是可以的。一天可能有 10 条记录

一种解决方案如下:

1) 写入 DB1

2)然后写入DB2

如果写入 DB2 失败,请使用 log4j 写入文件。然后将读取并重试此文件以将其保存在 DB2 中。这种方法可以吗?

4

1 回答 1

0

这称为 ACID 数据库的两阶段提交。

NoSQL 不像 ACID 数据库那样处理事务。当你使用 NoSQL 时,这是你选择放弃的事情之一。

我认为您必须在处理数据库的服务中对此进行编码。

于 2013-09-20T17:25:24.240 回答