分布式事务问题的由来
在分布式系统中,通常会将不同的服务、数据部署在不同物理机器,或者虚拟机。在每个节点都可以进行CURD操作,这些不同的数据节点需要保证数据的一致性。这个就涉及到分布式事务的问题。
数据一致性可分为:
强一致性
当更新操作完成后,其他线程访问都能返回最新的值弱一致性
当更新操作完成后,其他线程不能保证能够及时返回最新的值,系统不会承诺什么时候可以返回最新的值最终一致性
当更新操作完成后,其他线程不能及时返回最新的值,但系统最终会返回最新的值
如何解决分布式事务问题
1、两阶段提交(2PC)
两阶段提交有2个阶段组成:准备阶段和提交阶段
通常指定一个协调者,由协调者 通知每个参与者准备提交或回滚操作
2、将分布式事务拆分为多个本地事务,依靠重试等方式达到最终一致性