分布式服务架构学习——解决一致性问题的模式和思路

解决一致性问题的模式和思路

ACID 理论

关系型数据库天生用于解决具有复杂业务场景的问题,满足ACID的特性。

  • A(Atomicity):原子性
  • C(Consistency):一致性
  • I(Isolation):隔离性
  • D(Durability):持久性

具有ACID特性的数据库支持强一致性,通常使用MVCC实现的。

目前互联网项目都是面对大规模,高并发的业务场景,必须要使用拆分的理念对高并发的压力分而治之,这样通过关系型数据库就解决不了一致性的问题。

CAP 理论

针对分布式系统的CAP理论。

  • C(Consistency):一致性。所有节点在同一时刻读取的数据都是最新的。
  • A(Availability):可用性。服务能在有限的时间内处理完成并给出相应。
  • P(Partition tolerance):分区容错性。尽管网络有部分消息丢失,系统仍需要能够工作。

CAP理论表明,任何分布式系统只能同时满足以上2点。分布式的服务化系统都需要满足分区容错性,所以我们更多的实在C和A之间做权衡。

BASE 理论

因为大多数时候我们只需要系统达到最终一致性即可,并不需要强一致性。所以BASE理论满足CAP理论,牺牲了强一致性。

  • BA(Basically Available):基本可用
  • S(Soft State):软状态
  • E(Eventurlly Consistent):最终一致性

系统在处理某个业务的时候,允许系统中短暂的出现不一致的情况发生,并且在系统操作的过程中都会记录每个临时状态,当系统出现问题的时候,可以通过这个临时状态来选择回退操作或者重试操作来达到最终一致性。记录状态的方式可以是通过持久化来实现,但是考虑到大规模,高并发的业务场景下性能不高的问题,也可以使用类似数据库BinLog的方式记录。

参考资料

[1] 李艳鹏 杨彪. 分布式服务架构 [M].电子工业出版社,2017.8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值