北京中科白癜风医院平安医院 http://news.39.net/bjzkhbzy/180415/6169090.html1数据库事务1.1普通本地事务分布式事务也是事务,事务的ACID基本特性依旧必须符合:A:Atomic,原子性,事务内所有SQL作为原子工作单元执行,要么全部成功,要么全部失败;C:Consistent,一致性,事务完成后,所有数据的状态都是一致的。如事务内A给B转,只要A减去了,B账户则必定加上了;I:Isolation,隔离性,如果有多个事务并发执行,每个事务作出的修改必须与其他事务隔离;D:Duration,持久性,即事务完成后,对数据库数据的修改被持久化存储。普通的非分布式事务,在一个进程内部,基于锁依赖于快照读和当前读,比较好实现ACID来保证事务的可靠性。但分布式事务参与方通常在不同机器的不同实例上,原来的局部事务的锁不能保证分布式事务的ACID特性,需要引入新的事务框架,MySQL的分布式事务是基于2PC(二阶段提交)实现,下面详细介绍下2pc分布式事务。1.2基于2pc的分布式事务分布式事务有多种实现方式,如2PC(二阶段提交)、3PC(三阶段提交)、TCC(补偿事务)等,MySQL是基于2PC实现的分布式事务,下面介绍2PC分布式事务实现方式。两阶段提交:Two-PhaseCommit,简称2PC,为了使基于分布式系统架构下的所有节点在进行事务提交时保持一致性而设计的一种算法。2PC的算法思路可以概括为,参与者将操作成败通知协调者,再由协调者根据所有参与者的反馈情报,决定各参与者是否要提交操作还是中止操作。这里的参与者可以理解为ResourceManager(RM),协调者可以理解为TransactionManager(TM)。下图说明了RM和TM在分布式事务中的运作过程:第一阶段提交:TM会发送Prepare到所有RM询问是否可以提交操作,RM接收到请求,实现自身事务提交前的准备工作并返回结果。第二阶段提交:根据RM返回的结果,所有RM都返回可以提交,则TM给RM发送
转载请注明:http://www.aierlanlan.com/tzrz/428.html