数据库软件对单机ACID支持到位,但是进行水平或者垂直拆分之后,就变成了多机,需要面对多个数据库的节点,就出现了分布式事务的问题。
分布式事务:事务的参与者,支持事务的服务器,资源服务器以及事务管理器分别位于分布式系统的不同节点上。在分布式十五中,有多个节点参与。
分布式事务处理模型 X/Open DTP模型,定义了3个组件Application Program(AP),Resource Manager(RM),Transaction Manager(TM).在三个组件中,AP可以和TM和RM通信,TM和RM可以通信,同时还有XA接口,TM和RM使用XA进行双向通信。
数据的可用性(Availability):保证无论是成功还是失败,每个请求都能够收到一个反馈,系统一定要有响应。
分区容忍性(Partition-Tolerance):系统有部分问题或者有消息的丢失,但是系统仍能够继续运行。
分布式系统中不能同时满足三项,我们在进行系统设计是进行权衡选择 CA,AP或者CP
CA:放弃分区容忍,加强一致性和可用性。这是传统单机数据库的选择
AP:放弃一致性,追求分区容忍和可用性。这是很多分布式系统设计时的选择
CP:放弃可用性,追求一致性和分区容忍性。可用性比较低,系统不稳定。
在分布式系统中,我们通常会选择AP,但并不代表放弃一致性,而是通过其他手段补偿一致性。保证最终一致性。
该方案的核心是:少数服从多数
从工程上,尽量避免分布式事务的引入,如果引入分布式事务,可考虑最终一致性,通过补偿机制不断重试,让操作进行到底,而不是回滚。
分布式事务:事务的参与者,支持事务的服务器,资源服务器以及事务管理器分别位于分布式系统的不同节点上。在分布式十五中,有多个节点参与。
分布式事务处理模型 X/Open DTP模型,定义了3个组件Application Program(AP),Resource Manager(RM),Transaction Manager(TM).在三个组件中,AP可以和TM和RM通信,TM和RM可以通信,同时还有XA接口,TM和RM使用XA进行双向通信。
CAP理论:
数据的一致性(Consistency):所有节点在同一时间读到同样的数据。数据的可用性(Availability):保证无论是成功还是失败,每个请求都能够收到一个反馈,系统一定要有响应。
分区容忍性(Partition-Tolerance):系统有部分问题或者有消息的丢失,但是系统仍能够继续运行。
分布式系统中不能同时满足三项,我们在进行系统设计是进行权衡选择 CA,AP或者CP
CA:放弃分区容忍,加强一致性和可用性。这是传统单机数据库的选择
AP:放弃一致性,追求分区容忍和可用性。这是很多分布式系统设计时的选择
CP:放弃可用性,追求一致性和分区容忍性。可用性比较低,系统不稳定。
在分布式系统中,我们通常会选择AP,但并不代表放弃一致性,而是通过其他手段补偿一致性。保证最终一致性。
Paxos协议是解决系统一致性问题的方案
该方案的前提是有一个可信的通信环境,保证信息都是准确,没有被篡改。该方案的核心是:少数服从多数
从工程上,尽量避免分布式事务的引入,如果引入分布式事务,可考虑最终一致性,通过补偿机制不断重试,让操作进行到底,而不是回滚。