一、 zookeeper是分布式服务框架;它主要是用来解决分布式应用中经常遇到的一些数据管理问题
如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等;
Zookeeper 不仅可以单机提供服务,同时也支持多机组成集群来提供服务;
Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它
能提供基于类似于文件系统的目录节点树方式的数据存储,但是
Zookeeper 并不是用来专门存储数据的,它的作用主要是用来维护和监控你存储的数据的状态变
化。通过监控这些数据状态的变化,从而可以达到基于数据的集群管理
ZooKeeper 典型的应用场景:
Zookeeper 从设计模式角度来看,是一个基于观察者模式设计的分布式服务管理框架,它负责
存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,
Zookeeper 就将负责通知已经在 Zookeeper 上注册的那些观察者做出相应的反应,从而实现
集群中类似 Master/Slave 管理模式.
1) 统一命名服务: 分布式应用中,通常需要有一套完整的命名规则,既能够产生唯一的名称又
便于人识别和记住;通常情况下用树形的名称结构是一个理想的选择,树形的名称结构是一
个有层次的目录结构,既对人友好又不会重复.但是 Zookeeper 的 NameService 更加是广
泛意义上的关联,也许你并不需要将名称关联到特定资源上,你可能只需要一个不会重复名
称,就像数据库中产生一个唯一的数字主键一样。
2)配置管理:
.) 配置的管理在分布式应用环境中很常见,例如同一个应用系统需要多台 PC
Server 运行,但是它们运行的应用系统的某些配置项是相同的,如果要修改
这些相同的配置项,那么就必须同时修改每台运行这个应用系统的 PC
Server,这样非常麻烦而且容易出错.
.) 像这样的配置信息完全可以交给 Zookeeper 来管理,将配置信息保存Zookeeper
的某个目录节点中,然后将所有需要修改的应用机器监控配置信息的状态,
一旦配置信息发生变化,每台应用机器就会收到 Zookeeper 的通知,然后从
Zookeeper 获取新的配置信息应用到系统中
3)集群管理:
Zookeeper 能够很容易的实现集群管理的功能,如有多台 Server 组成一个服务
集群,那么必须要一个“总管”知道当前集群中每台机器的服务状态, 一旦有
机器不能提供服务,集群中其它集群必须知道,从而做出调整重新分配服务策
略。同样当增加集群的服务能力时,就会增加一台或多台 Server,同样也必须 让“总管”知道.Zookeeper 不仅能够帮你维护当前的集群中机器的服务状态,
而且能够帮你选出一个“总管”,让这个总管来管理集群,这就是 Zookeeper
的另一个功能Leader Election。
4)共享锁(Locks):
共享锁在同一个进程中很容易实现,但是在跨进程或者在不同 Server 之间就
不好实现了。Zookeeper 却很容易实现这个功能
分布式:
1) 分布式系统: 是支持分布式处理的软件系统。
2) 分布式处理: 则是将不同地点的,或具有不同功能的,或拥有不同数据的多台计算机
通过通信网络连接起来,在控制系统的统一管理控制下,协调完成大规
模信息处理任务的计算机系统。
3) 总 结: 分布式,就是多台计算机上的多个系统在同一个控制系统的协调管控下,处理大
规模的任务。
集 群:相互独立的计算机通过网络,构成一个组,并以单一系统的模式加以管理。客户机访问
集群时,集群就像是一个独立的服务器。
1) 目 的:。)提高性能: 提高处理性能一直是集群技术研究的一个重要目标之一.
。) 降低成本: 在达到同样性能的条件下,采用计算机集群比采用同等运算能
力的大型计算机具有更高的性价比。
。) 提高可扩展性: 集群技术,则只需要将新的服务器加入集群中即可
。) 增强可靠性: 集群技术使系统在故障发生时仍可以继续工作,将系统停运
时间减到最小
2) 分 类:
.) 负载均衡集群: 使负载可以在计算机集群中尽可能平均地分摊处理
.) 高可用性集群: 当集群中的一个系统发生故障时,集群软件迅速做出反
应,将该系统的任务分配到集群中其它正在工作的系统上执行。
3) 总 结: 集群,就是多台计算机上运行单一系统,组成一个组,对外提供服务.
二、经过个人测试,发现zoo.cfg配置文件中的ip地址如果写成localhost,有时会提示无法连接到服务 器的问题。最好写成ip地址,如 127.0.0.1
http://coolxing.iteye.com/blog/1871520/ ---;这是一个例子
http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/index.html#major3