分布式理论:CAP理论 BASE理论

这篇具有很好参考价值的文章主要介绍了分布式理论:CAP理论 BASE理论。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。



分布式理论:CAP理论 BASE理论,微服务&分布式,分布式,java,服务器

解决分布式事务问题,需要一些分布式系统的基础知识作为理论指导。

1. CAP定理

Consistency(一致性): 用户访问分布式系统中的任意节点,得到的数据必须一致 Availability(可用性):
用户访问集群中的任意健康节点,必须能得到响应,而不是超时或拒绝。 Partition(分区):
因为网络故障或其它原因导致分布式系统中的部分节点与其它节点失去连接,形成独立分区。 tolerance(容错):
在集群出现分区时,整个系统也要持续对外提供服务
======结论: CP : 强一致性,弱可用性(牺牲部分机器的可用性,保证数据一致性) AP : 强可用性,弱一致性(牺牲一致性,保证可用性)

1998年,加州大学的计算机科学家 Eric Brewer 提出,分布式系统有三个指标。

  • Consistency(一致性)
  • Availability(可用性)
  • Partition tolerance (分区容错性)

分布式理论:CAP理论 BASE理论,微服务&分布式,分布式,java,服务器

它们的第一个字母分别是 C、A、P。

Eric Brewer 说,这三个指标不可能同时做到。这个结论就叫做 CAP 定理。

1.1 一致性

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

比如现在包含两个节点,其中的初始数据是一致的:

分布式理论:CAP理论 BASE理论,微服务&分布式,分布式,java,服务器
当我们修改其中一个节点的数据时,两者的数据产生了差异:

分布式理论:CAP理论 BASE理论,微服务&分布式,分布式,java,服务器

要想保住一致性,就必须实现node01 到 node02的数据 同步:

分布式理论:CAP理论 BASE理论,微服务&分布式,分布式,java,服务器

1.2 可用性

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

如图,有三个节点的集群,访问任何一个都可以及时得到响应:
分布式理论:CAP理论 BASE理论,微服务&分布式,分布式,java,服务器
当有部分节点因为网络故障或其它原因无法访问时,代表节点不可用:

分布式理论:CAP理论 BASE理论,微服务&分布式,分布式,java,服务器

1.3 分区容错


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

分布式理论:CAP理论 BASE理论,微服务&分布式,分布式,java,服务器

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


1.4 矛盾

在分布式系统中,系统间的网络不能100%保证健康,一定会有故障的时候,而服务有必须对外保证服务。因此Partition Tolerance不可避免。

当节点接收到新的数据变更时,就会出现问题了:

分布式理论:CAP理论 BASE理论,微服务&分布式,分布式,java,服务器


如果此时要保证一致性,就必须等待网络恢复,完成数据同步后,整个集群才对外提供服务,服务处于阻塞状态,不可用。

如果此时要保证可用性,就不能等待网络恢复,那node01、node02与node03之间就会出现数据不一致。

也就是说,在P一定会出现的情况下,A和C之间只能实现一个。


2. BASE理论


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

  • Basically Available (基本可用):分布式系统在出现故障时,允许损失部分可用性,即保证核心可用。
  • Soft State(软状态) 在一定时间内,允许出现中间状态,比如临时的不一致状态。
  • Eventually Consistent(最终一致性):虽然无法保证强一致性,但是在软状态结束后,最终达到数据一致。

3. 解决分布式事务的思路

分布式事务最大的问题是各个子事务的一致性问题,因此可以借鉴CAP定理和BASE理论,有两种解决思路:

  • AP模式:各子事务分别执行和提交,允许出现结果不一致,然后采用弥补措施恢复数据即可,实现最终一致。

  • CP模式:各个子事务执行后互相等待,同时提交,同时回滚,达成强一致。但事务等待过程中,处于弱可用状态。

但不管是哪一种模式,都需要在子系统事务之间互相通讯,协调事务状态,也就是需要一个事务协调者(TC)

分布式理论:CAP理论 BASE理论,微服务&分布式,分布式,java,服务器

这里的子系统事务,称为分支事务;有关联的各个分支事务在一起称为全局事务


4. 扩展


ES 是 CP 为主,ES集群有节点发生故障 会剔除故障节点,数据会重新分配到其他节点,这个过程集群是不可用的保证数据的一致性。因此是低可用性、高一致性。

Eureka 是 AP。

Nacos 是有 CP 和 AP 都支持(默认AP)。



分布式理论:CAP理论 BASE理论,微服务&分布式,分布式,java,服务器文章来源地址https://www.toymoban.com/news/detail-609021.html

到了这里,关于分布式理论:CAP理论 BASE理论的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深入浅出 -- 系统架构之分布式CAP理论和BASE理论

    科技进步离不开理论支撑,而当下大行其道的分布式架构,透过繁荣昌盛表象,底层同样离不开诸多分布式理论撑持。当然,相信诸位在学习分布式相关技术时,必然学到过两个分布式领域中的基础理论,即: CAP与BASE理论 。 当一个从逻辑上被视为整体的系统,拆散到多个节

    2024年04月13日
    浏览(79)
  • 分布式理论基础:CAP定理

    CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性)这三个基本需求,最多只能同时满足其中的2个。 一致性 :数据在多个副本之间能够保持一致的特性。 可用性 :系统提供的服务一直处于可用的状态

    2024年02月05日
    浏览(46)
  • 分布式系统面试全集通第一篇(dubbo+redis+zookeeper----分布式+CAP+BASE+分布式事务+分布式锁)

    什么是分布式 一个系统各组件分别部署在不同服务器。彼此通过网络通信和协调的系统。 也可以指多个不同组件分布在网络上互相协作,比如说电商网站 也可以一个组件的多个副本组成集群,互相协作如同一个组件,比如数据存储服务中为了数据不丢失而采取的多个服务备

    2024年04月11日
    浏览(50)
  • 深入理解高并发下的MySQL与Redis缓存一致性问题(增删改查数据缓存的一致性、Canal、分布式系统CAP定理、BASE理论、强、弱一致性、顺序、线性、因果、最终一致性)

    一些小型项目,或极少有并发的项目,这些策略在无并发情况下,不会有什么问题。 读数据策略:有缓存则读缓存,然后接口返回。没有缓存,查询出数据,载入缓存,然后接口返回。 写数据策略:数据发生了变动,先删除缓存,再更新数据,等下次读取的时候载入缓存,

    2024年03月20日
    浏览(54)
  • 【分布式】1、CAP 理论 | 一致性、可用性、分区容忍性

    是 2002 年证明的定理,原文,内容如下: In a distributed system (a collection of interconnected nodes that share data.), you can only have two out of the following three guarantees across a write/read pair: Consistency, Availability, and Partition Tolerance - one of them must be sacrificed. 在一个分布式系统(指互相连接并共享数据

    2024年02月16日
    浏览(48)
  • 分布式理论基础:BASE理论

    BASE 是指基本可用(Basically Available)、软状态( Soft State)、最终一致性( Eventual Consistency),核心思想是即使无法做到强一致性(CAP 的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性。 分布式系统在出现故障时,允许损失部分可用性,即保证核心可用。

    2024年02月04日
    浏览(45)
  • 分布式系统中的那些一致性(CAP、BASE、2PC、3PC、Paxos、ZAB、Raft)

    本文介绍 CAP、BASE理论的正确理解、Paxos 算法如何保证一致性及死循环问题、ZAB 协议中原子广播及崩溃恢复以及 Raft 算法的动态演示。 下面还有投票,一起参与进来吧👍 工作过几年的同学,尤其是这几年,大家或多或少都参与过分布式系统的开发,遇到过各式各样“分布式

    2024年02月05日
    浏览(53)
  • 一篇搞定分布式大数据系统所有概念,包括有Hadoop、MapReduce、HDFS、HBASE、NoSql 、ZooKeeper 、Reidis 、Nginx 、BASE、CAP定义、特点和应用场景

    1.1hadoop定义和特点 Hadoop定义: Hadoop是一个开源的分布式计算框架,用于存储和处理大规模数据集。它基于Google的MapReduce论文和Google文件系统(GFS)的设计理念,并由Apache软件基金会进行开发和维护。 Hadoop的主要特点包括: 分布式存储:Hadoop通过分布式文件系统(Hadoop Dist

    2024年02月03日
    浏览(58)
  • 分布式系统之CAP定理介绍

      在分布式系统的设计和实现中,CAP定理是一个非常重要的概念。本文将介绍CAP定理的概念、含义和应用。   CAP定理是分布式系统设计中的一个基本原则,它指出,在分布式系统中,一致性(Consistency)、可用性(Availability)和分区容忍性(Partition tolerance)这三个目标无

    2024年02月04日
    浏览(43)
  • Windows服务器设置Nginx实现分布式服务

    下载Nginx-1.16.1版本。解压到如下目录: 设置环境变量: 检查版本: 启动nginx.exe ,出现黑框一闪而过,进程中出现如下情况代表启动成功: 下载wiremock-standalone-2.25.1.jar,可以使用Maven配置pom.xml下载。注意下载standalone版本。新建ServerA、ServerB两个目录,分别拷贝jar,新建启动

    2024年02月07日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包