分布式事务

共识算法(consensus algorithm)

所谓共识,就是多个节点对某个事情达成一致的看法,即使是在部分节点故障、网络延时、网络分割的情况下。

在分布式系统中,共识算法更多用于提高系统的容错性,比如分布式存储中的复制集(replication)。

paxos实际上又分为Basic Paxos、Fast Paxos和Multi-Paxos,而前两者只能对一个值形成决议,因此它们几乎只是用来做理论研究,并不直接应用在实际工程中。

目前Paxos算法在Google的Chubby、MegaStore、Spanner等系统中得到了应用,raft、zab等一致性算法都是在paxos的基础上通过增加或者调整一些限制条件演进而来的。

Raft协议就是一种leader-based的共识算法,与之相应的是leaderless的共识算法,raft在redis集群的leader选举中有很好地应用,

zab则是雅虎工程师针对zookeeper设计的分布式一致性算法。

单机本地事务

满足ACID(atomicity,consistency,isolation,durability)
常见实现方式:程序锁,数据库锁,mysql MVCC,undo/redo log等。

分布式事务

事务协商通信协议发展历程:
CAP定理,BASE理论->XA,TCC,可靠消息服务,AT,SAGA
XA模式:实现CP,基于数据库,各个事务SQL执行成功再commit,可靠性高

Rocketmq,基于可靠消息服务,本地事务表

Rabbitmq,基于可靠消息,消息确认

Seata,实现AP,基于本地消息事务表,自动生成反向sql

SAGA:适用于使用了业务处理同时包含本地事务和第三方服务调用,基于事件流管理及事件流回滚注册

 

posted @ 2022-12-26 10:36  原子切割员  阅读(15)  评论(0编辑  收藏  举报