知识卡片

分布式事务问题的根源

普通读书笔记卡

内容

集中式架构下单体数据库靠自身参照完整性和事务机制天然保证一致性。但分库分表、微服务化把数据拆到多个独立数据库和服务,事务机制只能保证单机原子性。凡业务动作需连续调用多个写操作(创建订单+扣库存),就存在部分成功部分失败的可能,一致性必须由业务系统自己兜底。发散:每次”拆分换扩展性”的决策都在把免费的一致性保证转移成额外工作量,需一并核算。

参考来源

- 位置:第10章《事务一致性》10.1节「随处可见的分布式事务问题」(源文件:_epub-src/text/part0047.html) - 结论依据:原文明确说明集中式架构下强大的数据库靠参照完整性和事务机制避免一致性问题(这正是数据库不同于存储的原因),但分布式时代分库分表、微服务化使数据库事务机制只能保证单机事务,跨库事务只能靠业务系统解决,直接支持卡片论述。 - 原始内容:"在'集中式'的架构中……利用数据库的参照完整性机制、事务机制,避免出现数据一致性问题。这正是数据库之所以叫'数据库'而不是'存储'的一个重要原因……但到了分布式时代……数据库的事务机制不管用了,因为数据库本身只能保证单机事务,对于分布式事务,只能靠业务系统解决。"