分布式系统一致性方法论

设计原则

解决方案

分布式系统一致性

ACID

含义

  • Atomicity: 原子性
  • Consistency:一致性
  • Isolation:隔离性
  • Durability:持久性

实现场景 :数据库

CAP

含义

  • Consistency:一致性
  • Availability:可用性, 完全的可用性指的是在任何故障模型下,服务都会在有限的时间处理响应
  • Partition tolerance:分区容错性,可靠性

BASE

含义: 基本可用和最终一致,放弃强一致性

  • BA:Basically Available,基本可用
  • S:Soft State,软状态,状态可以有一段时间不同步
  • E:Eventually Consistent,最终一致,最终数据是一致的就可以了,而不是时时保持强一致

实现方法

  • Write-Ahead Log:简单
  • 事务消息队列
    • 发送 Prepared 消息
    • update DB
    • 根据 update DB 结果成功或失败,Confirm 或者取消 Prepared 消息
    • 定期任务:把处于初始状态的msg 与生产者确认,最终一致;补偿模式

DTS :distribute transaction

应用程序、事务管理器、资源管理器、通信资源管理器四部分。
事务处理器是统管全局的管理者,资源处理器和通信资源处理器是事务的参与者。

  • 两段提交
  • 三端提交
  • Tcc: Try、Confirm、Cancel

关于补偿模式

通信模式 方法
同步 C 调用S查询服务,确认最终状态|
异步 未知状态,等待S 放确认最终回调结果
消息队列 定期校对模式, broker 消息与生产者确认机制

Paxos / Raft

缓存一致性

  • 读的顺序要先缓存,后数据库,
  • 写的顺序要先数据库,后缓存
WRITTEN BY:    陈贞

个人博客