CAP原则图解

             CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。

        如上图,假设这是一个分布式服务器集群,各个服务器节点之间的网络本来应该是畅通的,且每台服务器保存的数据都是自己特有、独一无二的。

 

        假如发生某些故障,导致(如下图):某些服务器在集群中失去了联系,此时正常运转和故障机器之间就形成了分区。

         此时诞生了不同分区,而由于每台服务器都保存的是自己特有的数据,所以失联服务器上的数据就无法访问了,此时分区容忍性(Partition tolearance)就是 0,是不可容忍的。

         解决这种服务器一旦失联,数据仍然可以访问的重要策略就是,replication副本策略,就是数据复制多份,然后保存在不同的服务器上。(如下图)

         

        显然,副本数绝越多,某台服务器发生故障时,其上的数据就越可能仍然访问,就越不容易出现失联分区,也就是分区容忍性越高。但是存储多个副本显而易见会带来新的问题,那就是不同服务器上的数据副本的同步问题(黑色线条表示数据同步关系),即一致性(Consistency)问题。

        分区容忍度越好,一致性的压力就越大。为了提高一致性,就又带来了可用性(Availability)问题,可用性可以简单理解为好不好用,能不能及时相应服务,当服务器需要花费大量时间同步数据的时候,读写数据的响应速度自然下降,因此可用性就会降低。实现一致性(Consistency)的典型机制有:Master-Slave主从同步、Paxos算法等。

       下面先说一说主从同步机制:

  1. Master接受写请求
  2. Master复制日志至slave
  3. Master等待,直到所有从服务器返回确认。

      主从同步机制是一个强一致性机制,要求很高:如果Master故障、某些服务器因为网络延迟没有及时返回ack等,都会导致同步失败,过长的等待时间,显然降低了可用性(Availability)。当然还有一些改进措施,可以回头再交流。下一步会回来补充Paxos算法,现在工作忙,时间不够。

 总的来讲各自的特征关键词如下:

C数据一致性:通信、同步、等待确认。

A可用性:相应时间、执行效率

P分区容忍度:复制、副本

 

  • 28
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 39
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 39
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值