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

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

阅读 1.7k
1 个回答

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

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题