为什么要引入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
 
 
原文地址:https://www.cnblogs.com/renhongwei/p/8760904.html