美文网首页
ZooKeeper(一)为什么要学习ZooKeeper

ZooKeeper(一)为什么要学习ZooKeeper

作者: 7ColorLotus | 来源:发表于2020-06-21 15:58 被阅读0次
  • 分布式系统基础知识
    1. 分布式系统:一个硬件或软件组件分布在不同的网络及计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统
    2. 特点:
      1> 分布性
      2> 对等性
      a, 服务的冗余
      b, 数据的冗余
      
    3> 并发性
    4> 缺乏全局时钟
    5> 故障随时会发生
    1. 分布式系统带来的问题
      1> 通信异常:网络异常
      2> 网络分区:
      3> 三态:超时态
      4> 节点故障
  • 分布式系统协调“方法论”
    1. 什么是CAP:
      1> C一致性:数据在分布式环境下的多个副本之间能否报纸一致性,这里的一致性更多的是指强一致性
      2> A可用性:分布式系统一直处于可用状态,对于请求总是能在有限的时间内返回结果执行
      3> P分区容错性:除非整个网络故障,分布式系统在任何网络或者单点故障时,仍能对外提供满足一致性和可用性的服务器
    2. CAP理论:一个分布式系统不可能同时满足一致性、可用性和分区容错性这三个基本需求,最多只能同时满足齐总的两项:
      1> 放弃P(满足AC): 将数据和服务都放在一个节点上,避免因网络引起的负面隐形,充分保证系统的可用性和一致性。但放弃P意味着放弃了系统的可扩展性
      2> 放弃A(满足PC): 当节点故障或者网络故障时,收到以你选哪个的服务需要等待一定的时间,一次能够在等待时间里,系统无法对外提供正常服务,因此是不可用的
      3> 放弃C(满足AP): 系统无法保证数据的实时一致性,但是承诺数据最终会保持一致性。因此存在数据不一致的窗口期,至于窗口期的长短取决于系统的设计
      Tips: 架构师的精力往往就花在怎么样根据业务场景在A和C之间寻求平衡
    3. BASE理论:即使无法做到强一致性,但分布式系统可以根据自己的业务特点,采用适当的方式来使系统达到最终的一致性;
      1> Basiclly Avaliable 基本可用:当分布式系统出现不可预见的故障时,允许算是部分可用性,保障系统的“基本可以用”;体现在“时间上的损失”和“功能上的损失”; eg:部分用户双十一高峰期淘宝页面卡顿或降级处理
      2> Soft state 软状态:允许系统中的数据存在中间状态,即系统的不同节点的数据副本之间的数据同步过程存在延时,并认为这种延时不会影响系统可用性; eg:12306网站卖火车票,请求会进入排队队列
      3> Eventually consistent 最终一致性:所有的数据在经过一段时间的数据同步后,最终能够达到一个一致的状态;eg:理财产品首页充值总金额短时不一致
  • 分布式一致性算法:2p,3p,paxos,zab
    1. 2pc/3pc:2p两阶段提交,数据库分布式事务经常使用的一种分布式算法,算法简单,但有出现阻塞,数据在某情况不一致的问题。3p对2p进行了完善,完善了阻塞以及可用性


      2pc.png
      3pc.png
    2. paxos算法:分布式一致性算法,也分两个阶段,遵循少数服从多数的原则,并不需要所有参与者都同意某一协议

    3. zab:借鉴paxos思路,是zookeeper解决分布式一致性所使用的算法

  • Zookeeper简介:
    1. 概念:Zookeeper致力于提供一个高性能,高可用,且具备严格的顺序访问控制能力的分布式协调服务,是雅虎公司创建,是Google的Chubby一个开源的实现,也是Hadoop和Hbase的重要组件
    2. 设计目标
      1> 简单的数据结构:共享的树形结构,类似文件系统,存储于内存
      2> 可以勾践集群:避免单点故障,3-5台机器就可以组成集群,超过半数正常工作就能对外提供服务
      3> 顺序访问:对于每个写请求,zk会分配一个全局唯一的递增编号,利用这个特性可以实现高级协调服务
      4> 高性能:基于内存操作,服务于非事务请求,适用于读操作为主的业务场景。3台zk集群能达到13wQPS
    3. 使用场景
      1> 数据发布订阅
      2> 负载均衡
      a,客户端负载
      b,服务端负载
      
    3> 命名服务
    4> Master选举
    5> 集群管理
    6> 配置管理
    7> 分布式队列
    8> 分布式锁

相关文章

网友评论

      本文标题:ZooKeeper(一)为什么要学习ZooKeeper

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