BASE理论提出是基于大规模高可用可扩展的分布式系统架构,不同于关系型数据库事务特点(ACID)的强一致性模型,通过牺牲强一致性来获取更高的可用性,并允许数据在一段时间内是不一致的,但最终达到一致状态。实际的业务场景下事物(ACID)基本特性和BASE理论也是要权衡考虑。
2、柔性事务遵循BASE理论,利用业务特点,在指定期限内让事务保持最终一致性,柔性事务是一种思想,从根本上看,就是业务模式对于事务过程中不一致性有一定的容忍度,可以留出足够的时间执行事务最终一致的方法。
3、PAXOS算法Paxos算法一种保障分布式系统最终一致性的共识算法,利用的是选举策略,少数服从多数的思想。PAXOS不要求对所有节点做实时同步,实质上是考虑到了分区情况下的可用性,通过减少完成一次事务需要的参与者个数,来保障系统的可用性。
例如:N个服务节点,有(N/2)+1个节点达成共识,则认为系统达到了一致,并且按照Paxos原则,最终理论上也达到了一致,不会再改变,如此一来,只要保证有半数以上的服务存活,允许小部分服务挂掉,客户可以与大部分服务节点通信,那么就不会影响整体操作流程,也不需确保服务器全部处于工作状态,容错性非常好。操作影响的数据和结果随后会被异步的同步到其他节点上,从而保证最终一致性。
分布式事务的各种具体实现案例,后续再说。
四、源代码地址 GitHub·地址 https://github.com/cicadasmile/data-manage-parent GitEE·地址 https://gitee.com/cicadasmile/data-manage-parent推荐阅读:架构设计系列
序号 标题00 架构设计:单服务.集群.分布式,基本区别和联系
01 架构设计:分布式业务系统中,全局ID生成策略
02 架构设计:分布式系统调度,Zookeeper集群化管理
03 架构设计:接口幂等性原则,防重复提交Token管理
04 架构设计:缓存管理模式,监控和内存回收策略
05 架构设计:异步处理流程,多种实现模式详解
06 架构设计:高并发流量削峰,共享资源加锁机制
07 架构设计:分布式服务,库表拆分模式详解