java、nodejs、go这些都有成熟的解决方案吗?使用unit Of Work,数据库事务,还是其他方法?如果数据分布在不同数据库,甚至是不同类型的数据库里面呢?
java、nodejs、go这些都有成熟的解决方案吗?使用unit Of Work,数据库事务,还是其他方法?如果数据分布在不同数据库,甚至是不同类型的数据库里面呢?
15 回答8.4k 阅读
7 回答5.3k 阅读
6 回答6.9k 阅读✓ 已解决
5 回答4.8k 阅读✓ 已解决
8 回答6.2k 阅读
4 回答4.4k 阅读✓ 已解决
5 回答3.2k 阅读✓ 已解决
事务 + 补偿,通常是二者相结合。
事务的话也可以再分为数据库事务和分布式事务了。用分布式事务的话就一般不追求强一致性了,绝大部分只要求最终一致、甚至弱一致性。用分布式事务框架的话一般不局限于语言、只要符合规范就都可以接入(无非是社区里有没有人造轮子罢了),比如 Seata、DTM、LCN 等等。
补偿的话看具体业务,方案很多,最简单粗暴的一种就是定时轮询。
P.S. Unit Of Work 的背后也还是事务啊……只不过在业务代码层面上屏蔽了事务的实现细节而已。