本地事务?
什么是本地事务
就是所有的sql都发生在 同一个mysql实例 里的 同一个库里的sql操作,这就叫本地事务
本地事务实现原理?
本地事务的实现是利于mysql的redelog和undolog日志和mvcc和锁等结合实现事务的回滚和防止事务的并发的.
怎么开启本地事务?
方法一:用@Transactional注解
方法二:直接手写开启事务代码
什么是分布式事务?
除了本地事务,其他的都是分布式事务
分布式事务怎么实现?
第一种是:mysql官方提供了 分布式事务解决方案, XA(跨数据库事务)(https://dev.mysql.com/doc/refman/5.7/en/xa.html)
XA分为外部和内部,两者结合发挥作用.
外部XA用于跨多MySQL实例的分布式事务,需要应用层作为协调者
内部XA事务用于同一实例下跨库事务,由Binlog作为协调者
第二种是:阿里的seate分布式事务管理工具
怎么判断这两个操作在同一个事务中?
如果是本地事务的话, 所有的sql要在一个线程中,要在一个数据库connection连接中,操作的是同一个mysql实例 里的 同一个库里.
如果是分布式事务的话,