分布式

分布式锁

分布式事务

分布式锁和分布式事务区别:

  • 锁问题的关键在于进程操作的互斥关系,例如多个进程同时修改账户的余额,如果没有互斥关系则会导致该账户的余额不正确。
  • 而事务问题的关键则在于事务涉及的一系列操作需要满足 ACID 特性,例如要满足原子性操作则需要这些操作要么都执行,要么都不执行。

2PC

两阶段提交(Two-phase Commit,2PC),通过引入协调者(Coordinator)来协调参与者的行为,并最终决定这些参与者是否要真正执行事务。

本地消息表(最终一致性)

本地消息表与业务数据表处于同一个数据库中,这样就能利用本地事务来保证在对这两个表的操作满足事务特性,并且使用了消息队列来保证最终一致性。(分布式事务操作的另一方执行成功,消息才是真正消费成功)

CAP 理论

分布式系统的最大难点,就是各个节点的状态如何同步。CAP 定理是这方面的基本定理,也是理解分布式系统的起点。 在分布式系统中,分区容忍性必不可少,因为需要总是假设网络是不可靠的。因此,CAP 理论实际上是要在可用性和一致性之间做权衡。

Paxos 协议

本文摘录自 Paxos协议学习小结
BasicPaxos 协议

  • 角色:Proposer(提出者) ,Acceptor(批准者) ,Learner(被告知者);
    • Proposer: 统计投票,发起请求;
    • Acceptor: 比较 ProposalID,提交提案;
  • 提案:提案ID为 ProposalID(全局唯一且递增的 ProposalID),提案内容为 value;
  • 请求:Prepare请求(不携带value),Accept请求;

先熟记算法过程,再反思核心思想为什么要这么设计;

过程

第一阶段 Prepare
第二阶段 Accept

算法的核心思想

协议的几个约束: 常见的疑问、及异常处理:

Paxos 协议推导过程

一步一步理解Paxos算法

其他文章

CS-Notes#Paxos