美文网首页
分布式一致性理解

分布式一致性理解

作者: 凯文不上班 | 来源:发表于2019-01-03 18:38 被阅读0次

    1.两个维度看方案:一致性、可用性

    强一致性、强可用性              ---  cap理论告诉我们不可能(p是必备,ca二选一)
    强一致性、很差的可用性          ---  主备同步/停机更新/两阶段提交 (一旦机器故障或网络分区系统不可用)
    强一致性、较高的可用性          ---  paxos/raft/zab 容忍部分节点故障、有问题
    最终一致性、强可用性            ---  消息/tcc/saga
    

    2.读取配置方式

    一致不一致是针对外部来说的,内部不一致没关系,只要保证从外部使用方的角度统一读取信息是一致的就ok
    

    3.CAP理论中的P到底指的是什么?

    摘自知乎里的一个回答,我觉得很好理解

    C:集群中所有机器状态是一致的。A:客户端访问集群中任意一个节点,总能得到"处理成功"的结果。
    假设有五个节点:n1~n5 ,出现网络分区被分成两组:[n1n2]和[n3n5],
    那么当n1出来客户端请求时(为了处理这种情况,也就是说"容忍网络分区",即支持 P)
    1:如果要保证C(一致性),那么它需要把消息复制到所有节点,但是网络分区导致无法成功复制到n3~n5,
    所以它只能返回"处理失败"的结果给客户端。(这时系统就处于不可用状态,即丧失了A)
    2:如果要保证可用性A,那么n1就只能把消息复制到n2,而不用复制到n3~n5(或者无视复制失败/超时),
    但n3同时也可能在处理客户端请求(譬如对同一个值进行修改),n3也为了保证A而做了同样的处理。
    那么 [n1n2]和[n3n5]的状态就不一致了,于是就丧失了 C。
    那么如果不支持P(也就是不容忍网络分区),也就是说(很乐观的认为)假设系统不会出现网络分区~

    链接:https://www.zhihu.com/question/54105974/answer/138030946

    相关文章

      网友评论

          本文标题:分布式一致性理解

          本文链接:https://www.haomeiwen.com/subject/pyeqrqtx.html