• CAP理论


    分布式领域CAP理论,
    Consistency(一致性), 数据一致更新,所有数据变动都是同步的
    Availability(可用性), 好的响应性能
    Partition tolerance(分区容忍性) 可靠性

    C:集群中所有机器状态是一致的。
    A:客户端访问集群中任意一个节点,总能得到"处理成功"的结果

    假设有五个节点:n1~n5 ,出现网络分区被分成两组:[n1~n2]和[n3~n5],那么当n1出来客户端请求时(为了处理这种情况,也就是说"容忍网络分区",即支持 P):

    1:如果要保证C(一致性),那么它需要把消息复制到所有节点,但是网络分区导致无法成功复制到n3~n5,所以它只能返回"处理失败"的结果给客户端。(这时系统就处于不可用状态,即丧失了A

    2:如果要保证可用性A,那么n1就只能把消息复制到n2,而不用复制到n3~n5(或者无视复制失败/超时),但n3同时也可能在处理客户端请求(譬如对同一个值进行修改),n3也为了保证A而做了同样的处理。 那么 [n1~n2]和[n3~n5]的状态就不一致了,于是就丧失了 C



    一个分布式系统里面,节点组成的网络本来应该是连通的。然而可能因为一些故障,使得有些节点之间不连通了,整个网络就分成了几块区域。数据就散布在了这些不连通的区域中。这就叫分区。

    当你一个数据项只在一个节点中保存,那么分区出现后,和这个节点不连通的部分就访问不到这个数据了。这时分区就是无法容忍的。

    提高分区容忍性的办法就是一个数据项复制到多个节点上,那么出现分区之后,这一数据项就可能分布到各个区里。容忍性就提高了。

    然而,要把数据复制到多个节点,就会带来一致性的问题,就是多个节点上面的数据可能是不一致的。要保证一致,每次写操作就都要等待全部节点写成功,而这等待又会带来可用性的问题。

    总的来说就是,数据存在的节点越多,分区容忍性越高,但要复制更新的数据就越多,一致性就越难保证。为了保证一致性,更新所有节点数据所需要的时间就越长,可用性就会降低。



  • 相关阅读:
    luogu P4342 [IOI1998]Polygon
    luogu P2051 [AHOI2009]中国象棋
    luogu P3304 [SDOI2013]直径
    luogu P1776 宝物筛选_NOI导刊2010提高(02)
    luogu P2900 [USACO08MAR]土地征用Land Acquisition
    CF1009E [Intercity Travelling]
    luogu P4360 [CEOI2004]锯木厂选址
    luogu P1268 树的重量
    centos7扩展根分区
    tcpdump抓包工具的使用
  • 原文地址:https://www.cnblogs.com/wsw-seu/p/9174789.html
Copyright © 2020-2023  润新知