不用外键的情况下各个语言是如何保证数据一致性的?

ygtzz
  • 570

java、nodejs、go这些都有成熟的解决方案吗?使用unit Of Work,数据库事务,还是其他方法?如果数据分布在不同数据库,甚至是不同类型的数据库里面呢?

回复
阅读 484
1 个回答
然后去远足
  • 34.7k

事务 + 补偿,通常是二者相结合。

事务的话也可以再分为数据库事务和分布式事务了。用分布式事务的话就一般不追求强一致性了,绝大部分只要求最终一致、甚至弱一致性。用分布式事务框架的话一般不局限于语言、只要符合规范就都可以接入(无非是社区里有没有人造轮子罢了),比如 Seata、DTM、LCN 等等。

补偿的话看具体业务,方案很多,最简单粗暴的一种就是定时轮询。

P.S. Unit Of Work 的背后也还是事务啊……只不过在业务代码层面上屏蔽了事务的实现细节而已。

宣传栏