返回顶部
首页 > 资讯 > 精选 >web分布式系统CAP的概念是什么
  • 287
分享到

web分布式系统CAP的概念是什么

2023-06-04 05:06:59 287人浏览 薄情痞子
摘要

这篇文章主要讲解了“WEB分布式系统CAP的概念是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“web分布式系统CAP的概念是什么”吧!引言CAP是分布式系统、特别是分布式存储领域中被讨

这篇文章主要讲解了“WEB分布式系统CAP的概念是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“web分布式系统CAP的概念是什么”吧!

引言

CAP是分布式系统、特别是分布式存储领域中被讨论最多的理论,“什么是CAP定理?”在Quora 分布式系统分类下排名 FAQ 的 No.1。CAP在程序员中也有较广的普及,它不仅仅是“C、A、P不能同时满足,最多只能3选2”,以下尝试综合各方观点,从发展历史、工程实践等角度讲述CAP理论。希望大家透过本文对CAP理论有更多地了解和认识。

CAP定理

CAP由Eric Brewer)在2000年PODC会议上提出[1][2],是Eric Brewer在Inktomi[3]期间研发搜索引擎、分布式web缓存时得出的关于数据一致性(consistency)、服务可用性(availability)、分区容错性(partition-tolerance)的猜想:

It is impossible for a web service to provide the three following guarantees : Consistency, Availability and Partition-tolerance.

该猜想在提出两年后被证明成立[4],成为我们熟知的CAP定理:

  • 数据一致性(consistency):如果系统对一个写操作返回成功,那么之后的读请求都必须读到这个新数据;如果返回失败,那么所有读操作都不能读到这个数据,对调用者而言数据具有强一致性(strong consistency) (又叫原子性 atomic、线性一致性 linearizable consistency)[5]

  • 服务可用性(availability):所有读写请求在一定时间内得到响应,可终止、不会一直等待

  • 分区容错性(partition-tolerance):在网络分区的情况下,被分隔的节点仍能正常对外服务

在某时刻如果满足AP,分隔的节点同时对外服务但不能相互通信,将导致状态不一致,即不能满足C;如果满足CP,网络分区的情况下为达成C,请求只能一直等待,即不满足A;如果要满足CA,在一定时间内要达到节点状态一致,要求不能出现网络分区,则不能满足P。

C、A、P三者最多只能满足其中两个,和FLP定理一样,CAP定理也指示了一个不可达的结果(impossibility result)。

web分布式系统CAP的概念是什么

CAP的工程启示

CAP理论提出7、8年后,NoSql圈将CAP理论当作对抗传统关系型数据库的依据、阐明自己放宽对数据一致性(consistency)要求的正确性[6],随后引起了大范围关于CAP理论的讨论。

CAP理论看似给我们出了一道3选2的选择题,但在工程实践中存在很多现实限制条件,需要我们做更多地考量与权衡,避免进入CAP认识误区[7]

1、关于 P 的理解

Partition字面意思是网络分区,即因网络因素将系统分隔为多个单独的部分,有人可能会说,网络分区的情况发生概率非常小啊,是不是不用考虑P,保证CA就好[8]。要理解P,我们看回CAP证明[4]中P的定义:

In order to model partition tolerance, the network will be allowed to lose arbitrarily many messages sent from one node to another.

网络分区的情况符合该定义,网络丢包的情况也符合以上定义,另外节点宕机,其他节点发往宕机节点的包也将丢失,这种情况同样符合定义。现实情况下我们面对的是一个不可靠的网络、有一定概率宕机的设备,这两个因素都会导致Partition,因而分布式系统实现中 P 是一个必须项,而不是可选项[9][10]

对于分布式系统工程实践,CAP理论更合适的描述是:在满足分区容错的前提下,没有算法能同时满足数据一致性和服务可用性[11]

In a network subject to communication failures, it is impossible for any web service to implement an atomic read/write shared memory that guarantees a response to every request.

2、CA非0/1的选择

P 是必选项,那3选2的选择题不就变成数据一致性(consistency)、服务可用性(availability) 2选1?工程实践中一致性有不同程度,可用性也有不同等级,在保证分区容错性的前提下,放宽约束后可以兼顾一致性和可用性,两者不是非此即彼[12]

web分布式系统CAP的概念是什么

CAP定理证明中的一致性指强一致性,强一致性要求多节点组成的被调要能像单节点一样运作、操作具备原子性,数据在时间、时序上都有要求。如果放宽这些要求,还有其他一致性类型:

  • 序列一致性(sequential consistency)[13]:不要求时序一致,A操作先于B操作,在B操作后如果所有调用端读操作得到A操作的结果,满足序列一致性

  • 最终一致性(eventual consistency)[14]:放宽对时间的要求,在被调完成操作响应后的某个时间点,被调多个节点的数据最终达成一致

可用性在CAP定理里指所有读写操作必须要能终止,实际应用中从主调、被调两个不同的视角,可用性具有不同的含义。当P(网络分区)出现时,主调可以只支持读操作,通过牺牲部分可用性达成数据一致。

工程实践中,较常见的做法是通过异步拷贝副本(asynchronous replication)、quorum/NRW,实现在调用端看来数据强一致、被调端最终一致,在调用端看来服务可用、被调端允许部分节点不可用(或被网络分隔)的效果[15]

3、跳出CAP

CAP理论对实现分布式系统具有指导意义,但CAP理论并没有涵盖分布式工程实践中的所有重要因素。

例如延时(latency),它是衡量系统可用性、与用户体验直接相关的一项重要指标[16]。CAP理论中的可用性要求操作能终止、不无休止地进行,除此之外,我们还关心到底需要多长时间能结束操作,这就是延时,它值得我们设计、实现分布式系统时单列出来考虑。

延时与数据一致性也是一对“冤家”,如果要达到强一致性、多个副本数据一致,必然增加延时。加上延时的考量,我们得到一个CAP理论的修改版本PACELC[17]:如果出现P(网络分区),如何在A(服务可用性)、C(数据一致性)之间选择;否则,如何在L(延时)、C(数据一致性)之间选择。

感谢各位的阅读,以上就是“web分布式系统CAP的概念是什么”的内容了,经过本文的学习后,相信大家对web分布式系统CAP的概念是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: web分布式系统CAP的概念是什么

本文链接: https://lsjlt.com/news/236615.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • web分布式系统CAP的概念是什么
    这篇文章主要讲解了“web分布式系统CAP的概念是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“web分布式系统CAP的概念是什么”吧!引言CAP是分布式系统、特别是分布式存储领域中被讨...
    99+
    2023-06-04
  • web分布式系统的基本概念是什么
    这篇文章主要讲解了“web分布式系统的基本概念是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“web分布式系统的基本概念是什么”吧!1、分布式小明的公司又3个系统:系统A,系统B和系统C...
    99+
    2023-06-04
  • 分布式系统CAP定理中的P原理是什么
    这篇文章主要介绍“分布式系统CAP定理中的P原理是什么”,在日常操作中,相信很多人在分布式系统CAP定理中的P原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”分布式系统CAP定理中的P原理是什么”的疑...
    99+
    2023-07-05
  • web服务器集群、分布式、集中式的概念是什么
    web服务器集群、分布式、集中式是不同的系统架构方式:1. Web服务器集群:指多台独立的服务器通过负载均衡器或者反向代理服务器组成...
    99+
    2023-10-18
    web服务器 服务器
  • 分布式系统CAP的原理介绍
    CAP原理中,有三个要素: 一致性(Consistency) 可用性(Availability) 分区容错性(Partition tolerance) Consistency 一致性 一致性指“all ...
    99+
    2024-04-02
  • 你男朋友是高可用么? | 谈分布式系统的概念
    转自 | 爪哇笔记 作者 | BigC哥你男朋友是高可用么?分布式系统的概念,技术来源于恋爱,又高于恋爱。高可用:就算失恋了,可以迅速和另一个女生恋爱,永远不会是单身状态。注册中心:你和你女朋友去民政局登记,民政局就是注册中心,掉线的代价就...
    99+
    2023-06-05
  • Web Services的概念是什么
    Web Services是一种基于Web技术的软件系统,它使用标准的Internet协议和格式来进行通信和交互。它允许不同的应用程序...
    99+
    2023-10-10
    Web Services
  • php web的概念是什么
    这篇文章主要介绍“php web的概念是什么”,在日常操作中,相信很多人在php web的概念是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php web的概念是什么”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-07-04
  • 分布式、微服务和集群的概念是什么
    这篇“分布式、微服务和集群的概念是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“分布式、微服务和集群的概念是什么”文章吧...
    99+
    2023-06-27
  • bootstrap响应式布局的概念是什么
    这篇文章主要讲解了“bootstrap响应式布局的概念是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“bootstrap响应式布局的概念是什么”吧! ...
    99+
    2024-04-02
  • web开发的概念是什么
    今天小编给大家分享一下web开发的概念是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。...
    99+
    2024-04-02
  • web前端的概念是什么
    这篇“web前端的概念是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“web前端的概念是什么”文章吧。Web前端是给用户...
    99+
    2023-07-05
  • 分时操作系统的核心概念是什么?
    分时操作系统的核心概念 分时操作系统是计算机操作系统的一种类型,它允许多个用户同时访问和使用计算机系统资源。与批处理操作系统不同,批处理操作系统一次只能处理一个用户的作业,分时操作系统通过时间片轮转的方式,为每个用户分配一定的时间片,从...
    99+
    2024-03-05
    分时操作系统 时间片轮转 多任务处理
  • Windows操作系统的概念是什么
    Windows操作系统是由微软公司开发和推出的一种计算机操作系统。它提供了一个用户友好的图形界面和一系列的系统工具,用于管理和控制计...
    99+
    2023-10-26
    Windows
  • 分布式系统CAP定理中的P原理解析
    目录引言什么是 CAP 定理(CAP theorem)分区容错性(Partition tolerance)几个常用的 CAP 框架对比EurekaZookeeperConsul引言 ...
    99+
    2023-02-05
    分布式系统CAP 分布式系统
  • linux中系统调用的概念是什么
    这篇文章主要讲解了“linux中系统调用的概念是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux中系统调用的概念是什么”吧!在linux中,系统调用是指操作系统提供给用户程序调用...
    99+
    2023-06-29
  • 分布式系统知识分享:正确理解CAP定理
      前言   CAP的理解我也看了很多书籍,也看了不少同行的博文,基本每个人的理解都不一样,而布鲁尔教授得定义又太过的简单,没有具体描述和场景案例分析。因此自己参考部分资料梳理了一篇与大家互相分享一下。  标题写了正确理解,或许某些点不是百...
    99+
    2023-06-05
  • html5中web储存的概念是什么
    这篇文章主要介绍了html5中web储存的概念是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇html5中web储存的概念是什么文章都会有所收获,下面我们一起来看看吧。 ...
    99+
    2024-04-02
  • web分布式系统怎么理解
    本篇内容介绍了“web分布式系统怎么理解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!分布式系统理论基础 - 一致性、2PC和3PC引言狭义...
    99+
    2023-06-03
  • web前端基本概念是什么
    本篇内容介绍了“web前端基本概念是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一 前端概述现代互联...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作