不同的连接
事务:数据库操作的最小单元
分布式事务:跨越connect的事务
CAP理论
- 一致性:Consistency
- 集群的各个节点数据都是一致的,因此可以向任意节点读写数据,并且总是得到相同数据
- 可用性:Availability
- 可用性表示总是能够访问集群(读/写),即便集群中某个节点宕机了
- 分区容忍性:Partition toleranc
- 数据库之间网络连接,但是宕机了,变为分区依然可以进行数据库操作
1.一旦出现了分区的情况下,需要保证数据的一致性,就要牺牲数据的可用性
2.一旦出现分区的情况下,如果保证集群的可用性,就牺牲了一致性;
满足CA-->单体应用
刚性事务:遵循ACID的强一致性
追求单体事务的完成度
XA/2PC
根据第一个阶段的返回结果
缺陷
1.第一阶段待修改的数据会被加上排它锁,导致在没有释放锁的时候其他执行会等待
2.无法保证数据的强一致性
(也就是导入一个事务管理器,让管理器管理)
柔性事务:最终一致性
定义:遵循BASE理论,最终一致性;与刚性不同,允许这一定时间内,不同节点数据不一致,但是要求数据最终一致;
TCC事务(相当于人工回滚)
服务化的二阶段编程模型() :XP/2PC是数据库的两阶段,TCC是业务的二阶段
try里是一个执行,confirm接口再执行
如果try失败了,那么执行 Cancel
也就是把业务分为了两个阶段,数据库是无法感知的,没有数据库阻塞
如果confirm失败了,会不断重试达到最终一致性
(业务二段,类似回滚)