当前位置: 首页 > news >正文

分布式系统理论-CAP和BASE

1. CAP定理和BASE理论的作用

①  分布式事务方案的指导

②  分布式系统设计方向

③  根据业务指导正确使用的技术选择

2 CAP定理

Consistency 一致性  用户访问分布式系统的任意节点,得到的数据必须一致

Availability  可用性  用户访问集群中的任意健康节点,必须能得到响应,而不是超时或拒绝。

Partition tolerance 分区容错性

分区:因为网络故障或其他原因导致分布式系统中的部分节点与其他节点失去连接,形成独立分区。

容错:集群出现分区时,整个系统也要持续对外提供服务。

分布式系统无法同时满足满足以上三个指标,该结论为 CAP定理。分布式系统借钱之间肯定需要网络连接,则分区(P)必然存在。如果保证访问的高可用性(A),可以持续对外提供服务,但是不能保证数据的强一致性,即为AP。如果保证数据的强一致性(C),就需要放弃高可用性,即为CP。

3. BASE理论

BASE理论是对CAP定理的一种解决思路,包含三个思想:

①  Baseically Available(基本可用):分布式系统再出现故障时,允许损失部分可用性,保证核心可用。

②  Soft State(软状态):在一定时间内,允许出现中间状态,比如临时的不一致状态

③  Eventually Consistent(最终一致性):虽然无法保证强一致性,但是在软状态结束后,最终达到数据一致。

如上图,设计为AP模式时,保证系统的高可用性,三个微服务会各自提交自己执行的事务,各个微服务事务处理完成后会同步执行的状态,当发现库存服务提交失败后,数据就不一致,处于一种软状态,三个微服务会将执行的状态上报到事务协调者,事务协调者发现数据不一致,会通知已经提交事务的微服务恢复数据(并非回滚事务,因为事务已经提交,而是逆向操作,实现最终一致性)。当设计为CP模式时,各个微服务会执行自己的业务,但是不会提交事务,执行完成后通知事务协调者执行结果,如果出现未成功的微服务,事务协调者会通知执行成功的微服务进行回滚操作,保证了数据的强一致性,当然,在等待事务协调者的提交通知的过程中,每个微服务的当前操作线程是阻塞的,就失去了高可用性。

http://www.dtcms.com/a/388990.html

相关文章:

  • SaaS 安全的原则、挑战及其最佳实践指南
  • Flink on Native K8S源码解析
  • VMwarea安装
  • HarmonyOS之Swiper全解析
  • React18中性能优化方式
  • X133核心板--智能教育平板的芯动力​
  • 下载flink和flink cdc jar
  • 华为三层交换技术
  • 潮起之江:算力创新与赋能开启AI产业新征程
  • 华为链路聚合技术基础
  • 百度智能云车牌识别API官方配置指南
  • Git 拉Github的仓库却要求登录GitLab
  • 【Kafka】Kafka如何开启sasl认证?
  • 国产化Excel开发组件Spire.XLS教程:C# 轻松将 DataSet 导出到 Excel
  • NLP情绪因子解构鲍威尔“风险管理降息”信号,黄金价格在3707高位触发量化抛售潮
  • 【Python办公】Excel多Sheet拆分工具
  • Unity_程序集_.asmdef_引用命名域失败
  • FPGA采集AD7606转SRIO传输,基于Serial Rapidlo Gen2,提供6套工程源码和技术支持
  • Cloudcompare实现在模型上进行点云(下)采样
  • 【Linux】聊聊文件那些事:从空文件占空间到系统调用怎么玩
  • 基于代码层对运动台性能提升实战
  • openfeigin配置相关
  • 网络传输协议解析及SSE补充
  • 视觉SLAM第12讲:建图
  • 2025编程技术学习网站大全:从入门到精通的免费资源指南
  • 刷题日记0918
  • emacs 如何显示断点和运行的行标
  • 【c++】继承(2)
  • 大模型提示词Prompt工程:万能公式-完整指南
  • Flask RESTful API 教程:从零实现 Python CRUD 后端服务