zoukankan      html  css  js  c++  java
  • 为什么要引入zookeeper系统

    为什么要引入zookeeper系统?这篇文章将说明几个引入zookeeper的原因,首先,先对zookeeper做一个简单的介绍。
    zookeeper是hadoop下的一个子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括配置维护、名字服务、分布式同步、组服务等。支持集群复制,集群依赖ZAB(zookeeper atoimc broadcas)协议来保持分布式数据一致性。
     
    ZAB(zookeeper atoimc broadcas)协议:
    该协议可以被看作是Paxos协议(即一致性协议)的变体,主要包括两个阶段,leader election阶段和atoimc broadcas阶段。
     
    集群中选举出一个leader,其他机器则成为follower,所有写操作交给leader,并通过broadcas将所有的更新通知给follower。当leader崩溃或者leader失去了大多数的follower时,需要重新选举出一个leader,让所有的服务器都恢复到正常的状态,当leader选举出来,且大多数服务器完成了和leader的状态同步后,此时leader election的过程就结束了,将进入atoimc broadcas阶段。 atoimc broadcas同步leader和follower之间的信息,保证leader和follower具有相同的系统状态。
     
    下面是个人看文档理解的含义,有错请指出,谢谢
    leader election:领导者 某种意义上master
    atoimc broadcas:具有原子特性的广播 某种意义上的slave
     
    为什么要使用zookeeper?
    这个要从SOA说起,在分布式应用架构体系中对于业务逻辑复用的需求十分强烈,所以需要将能够复用的代码抽离出来封装成可共用的服务,减少重复建设工作。
    通常,我们想要实现SOA一般需要有一个cusumer和provider,即消费者、提供者,消费者通过服务名称找到对应的通信地址,用于确认服务提供者身份,完成数据的交互,我们可以将这些服务配置在文件中。
    那么在大型企业中,服务的数量会十分庞大,我们如果添加一个服务的话,那么就需求覆盖文件,把整个容器重启,波及影响太大,维护起来十分困难。如果不通过硬编码的方式定义怎么实现?
     
    此时,需要一个能够动态注册服务和获取服务信息的地方,来统一管理服务,可称为服务配置中心。zookeeper不仅实现了对cusumer和provider的灵活管理,平滑过渡功能,而且还内置了负载均衡、主动通知等功能,使我们能够几乎实时的感应到服务的状态。
     
    zookeeper包含持久节点和非持久节点,它不单单能够完成服务消费的过程,而且还可以用来实现分布式锁,具体实现我会在下一篇文章中贴出代码:http://www.cnblogs.com/renhongwei/p/8806840.html
     
     
  • 相关阅读:
    Jmeter性能监测及安装插件(推荐)
    测试用例使用传统excel还是思维导图(Xmind、MindManager等)?
    测试用例设计
    一个资深测试员的感悟
    log4j教程 10、PatternLayout
    log4j教程 9、HTMLLayout
    log4j教程 8、日志格式化
    log4j教程 7、日志记录级别
    log4j教程 6、Logger方法
    log4j教程 5、示例程序
  • 原文地址:https://www.cnblogs.com/renhongwei/p/8760904.html
Copyright © 2011-2022 走看看