Zookeeper初印象

第一次接触ZooKeeper是因为项目中用到dubbo,而dubbo需要用到ZooKeeper,所以一直觉得ZooKeeper是个注册中心,官网上说它是“配置管理”,“名字管理”,“分布式锁管理”,“集群管理”。听到这些词还是不太清楚,然后在googgle上搜索一下“为什么要用ZooKeeper”,看完前两页的博文介绍,发现有一篇介绍的通俗易懂。博文地址:
Zookeeper-Zookeeper可以干什么
zookeeper在ubuntu上安装详见:阿里文档
或者我自己写的dubbo的helloworlddubbo之helloworld
对象给买了一本《Zookeeper分布式过程协同技术详解》,上班不是太忙就开始从第一章开始看,一个半天看了三章,觉得有些吃力,书里面好多概念都听不懂,搞得都有点怀疑自己智商了,所以打算写篇博文来总结一下自己看书后的所得。

zookeeper是什么?
zookeeper是一个分布式协作服务软件 (类似tomcat,解压后启动就可以直接使用)

为什么要用zookeeper呢?
Zookeeper-Zookeeper可以干什么 我觉得可以参考这篇博文。 我的理解:
1)将客户端和服务端地址服务进行解耦了。客户端并不需要知道服务端在哪台server上部署。不像http invoker必须要指定service对象的地址 (注册中心)
2)如果一个服务部署在多台server上,如果配置文件没有集中管理,而是在每个项目中,那么需要修改配置文件时候需要一台台修改。比如数据库用户名和密码修改(例子可能不恰当,因为实际项目没有出现过这种情况)
3)项目中有需要定时发送短信业务,如果不用ZooKeeper,怎么解决单点和多台定时协作的问题呢?用了zookeeper就可以用其中任意一台server占用锁发送,如果server挂掉,其它server中定时程序获得锁继续发送。(分布式锁)
4)集群管理 (其它机器需要感知机器加入或退出的需求)
ZooKeeper改变了什么?
ZooKeeper简化了开发流程,提供了更加敏捷健壮的方案,使用ZooKeeper可以让开发人员更专注于其应用本身的逻辑而不是神秘的分布式系统概念

ZooKeeper不适用的场景?
1)不适用海量数据存储
2)不知道有多少应用服务采用主节点方式或进程响应跟踪方式(不理解这句话)
3)没有为应用实现主节点选举
4)没有进程存活与否的跟踪功能

什么叫分布式系统?
Zookeeper分布式过程协同技术详解》中定义为:分布式系统是同时跨越多个物理主机,独立运行的多个软件组件所组成的系统。


由于1.1章全是概念,自己又刚接触zookeeper所以总结的时候有点像做阅读理解。

相关文章
相关标签/搜索