• CAP定理


    1、CAP定理
    分布式系统(各系统互相联系且数据共享)中,只能最多满足一致性(Consistency),可用性(Availability)和分区容错性(Partition tolerance)中的两种。
     
    一致性:是指客户端的读操作可以拿到最新的写操作的数据
    可用性:是指请求在合理的时间内可以返回合理的结果,而不是系统异常,报错,超时等
    分区容错性:是指系统出现网络分区后,还可以履行职责。
     
     
    2、CAP应用
     
    首先P分区容错性是必须的,为什么呢?
    因为网络本身就不可靠,不可能100%可靠。一个CA系统,当出现分区问题时,有服务器不能使用,此时有写操作,但是不能进行服务器之间的同步,所以系统需要禁止写入,此时会返回系统故障,这就违反了A 可用性,没有返回合理的结果,所以在分布式系统中不能选择CA系统。
     
    接下来CP和AP系统(N1,N2两台服务器)
     
    1、cp
    为了保证一致性,当出现分区现象后,N1的数据已经更新到y,但是由于N1和N2的复制通道关闭了。数据y无法更新到N2,N2节点的数据还是x。这时候客户端访问N2时,N2需要返回error(保持一致性,此时数据不一致,故返回error),不满足可用性。因此CAP三者只能满足CP
     
    2、ap
    当出现分区现象后,N1的数据已经更新到y,但是由于N1和N2的复制通道关闭了。数据y无法更新到N2,N2节点的数据还是x。这时候客户端访问N2时,N2返回的是x,与N1的数据不一致,故无法达到一致性。此时为何n2不返回error呢,因为可用性是指返回合理的结果,x属于合理的结果。
     
    故综上所述,在分布式系统中只能选择AP和CP系统
  • 相关阅读:
    Django学习笔记之中间件和上下文处理器
    python练手小题(四)
    python练手小题(三)
    python练手小题(二)
    python练手小题(一)
    Django学习笔记之自定义过滤器及标签
    Django学习笔记之模板标签与静态文件
    Django学习笔记之模板变量与模板过滤器
    Django学习笔记之url路由及模板渲染方式
    学习Go语言的9大理由
  • 原文地址:https://www.cnblogs.com/volare/p/9878783.html
Copyright © 2020-2023  润新知