《从paxos到zookeeper》学习笔记(一)

1、概述

ZooKeeper是一个 分布式的,开放源码的 分布式应用程序协调服务,是 Google的Chubby一个 开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口。
 
第一章:CAP定理和base理论
  CAP理论:一个分布式系统不可能同时满足一致性(C:consistenc)、可用性(A:Availability)和分区容错性(P:Partition tolerance)这三个基本需求,最多只能同时满足其中的两项。
  1、一致性:
      在分布式环境中,一致性是指数据在多个副本之间能否保持一致的特性。
 2、可用性:
    系统提供的服务必须一直处于可用的状态,对于用户的每一个操作请求总是能够在 有限的时间内返回结果。有限的时间指的是对于用户的一个操作请求,系统必须能够在指定的时间内(系统设计之初就设定好的系统运行指标,如接口调用超时时间)返回对应的处理结果,如果超过了这个时间范围,那么系统就被认为是不可用的。
 3、分区性容错:
    分布式系统在遇到任何网络分区故障的时候,仍然需要能够保证对外提供满足一致性和可用性的服务,除非是整个网络环境都发生了故障。
    网络分区是指在分布式系统中,不同的节点分布在不同的子网络(机房或异地网络等)中,由于一些特殊的原因导致这些子网络之间出现不连通的状况,但各个子网络的内部网络是正常的。从而导致整个系统的网络环境被切分成了若干个孤立的区域。
 
放弃P:如将所有的数据都放在一个分布式节点上,但意味着放弃了系统的可扩展性。
放弃A:一旦系统遇到网络分区或其他故障,那么受到影响的服务需要等待一定时间,而在等待期间系统不可用。
放弃C:放弃一致性是指放弃数据的强一致性,而保留数据的最终一致性。
 
结论:对于一个分布式系统来说,分区容错性是一个最基本的要求,因为分布式系统中的组件必然需要被部署到不同的节点,否则也就无所谓分布式系统了,因此必然出现子网络,那么网络问题又是一个必定会出现的异常情况。因此系统架构设计师需要把精力花在根据业务特点在C(一致性)和A(可用性)之间寻求平衡。
 
BASE理论
 BASE:是指三个状态,基本可用,软状态,最终一致性。核心思想是即使无法做到强一致性,但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性。
   基本可用:
       指分布式系统在出现不可预知故障的时候,允许损失部分可用性(响应时间上的损失,或者功能上的损失)
       弱状态:软状态,允许系统在不同节点的数据副本之间进行数据同步的过程存在延时。
       最终一致性:系统中所有的数据副本,在经过一段时间后,最终能够达到一个一致的状态。
   

转载于:https://www.cnblogs.com/qinhaohao1114/p/7738103.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值