其他分享
首页 > 其他分享> > 【147期】面试官问:你讲讲分布式事务问题的几种方案?

【147期】面试官问:你讲讲分布式事务问题的几种方案?

作者:互联网

分布式事务的实现主要有以下 5 种方案:

  • XA 方案
  • TCC 方案
  • 本地消息表
  • 可靠消息最终一致性方案
  • 最大努力通知方案

两阶段提交方案/XA方案

所谓的 XA 方案,即:两阶段提交,有一个事务管理器的概念,负责协调多个数据库(资源管理器)的事务,事务管理器先问问各个数据库你准备好了吗?如果每个数据库都回复 ok,那么就正式提交事务,在各个数据库上执行操作;如果任何其中一个数据库回答不 ok,那么就回滚事务。

这种分布式事务方案,比较适用单体应用里,跨多个库的分布式事务,而且因为严重依赖于数据库层面来搞定复杂的事务,效率很低,绝对不适合高并发的场景。基于 Spring + JTA 就可以搞定。

这个方案很少用,一般来说某个系统内部如果出现跨多个库的这么一个操作,是不合规的。现在微服务,一个大的系统分成几十个甚至几百个服务。一般来说,我们的规定和规范,是要求每个服务只能操作自己对应的一个数据库。

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:147,面试官,管理器,方案,数据库,XA,事务,分布式
来源: https://www.cnblogs.com/xfeiyun/p/15706688.html