目录
官方网站:Apache ZooKeeper
什么是zookeeper?
简介:ZooKeeper是一个开源的分布式调节器,她是为大型分布式计算提高开源的分布式配置服务,同步服务和同名注册。或者说是一个协助分布式系统开发的应用程序,主要用来处理协同数据。它还可以用来做集群管理,统一命名服务,管理配置信息,分布式锁。它是一个典型的分布式数据一致性解决方案,其设计目的是将复杂且容易出错的分布式一致性服务封装起来,来构成一个高效可靠的系统,并且以一系列简单易用的原子操作提供给用户使用。
为啥使用zookeeper?
随着应用规模的迅速扩张,单台机器的部署已经难以支撑用户大规模、高并发的请求了, 因此服务化、集群化、分布式概念应运而生。 针对这种场景,人们通常使用的做法就是将软件按照模块进行拆分,形成独立的子系统,然后在局域网内部署到多台机器上面, 形成了一个集群。 这种方式即可以分滩请求压力,又可以起到灾备的效果。
然而, 集群的维护和多节点应用程序的协作运行远比单机模式复杂,需要顾及到的细节问题实在太多,比如说同一分配置在多台机器上的同步, 客户端程序实时感知服务机状态,应用与应用之间的公共资源的互斥访问等等一系列的问题。 如果这些问题都依靠开发人员或维护人员去解决的话, 非旦消耗人力,而且也达不到实时准确的效果。
所幸的是,zookeeper能够给我们非常完美的解决这些问题,zookeeper天生的就是为解决分布式协调服务这个问题而来, 应用zookeeper,能够非常好的解决如下问题:
1、配置信息同步
2、分布式锁控制
3、消息的发布与订阅(典型的生产者消费者模型)
4、集群内节点状态的快速感知
同类还有什么类似的产品,优势是什么?特点是什么?
同类产品:Consul,Doozerd,及Etcd
同类产品比较的文章可以参考以下这几篇:
参考一: ZooKeeper vs. Doozer vs. Etcd | devo.ps
参考二: 服务发现之zookeeper VS consul VS etcd - 开发者知识库
参考三:服务发现:Zookeeper vs etcd vs Consul - 开发者知识库
如何下载安装?
然后大家就可以选择自己想要的版本了,例如我选的是3.4.9
将下载好的zookeeper-3.4.9.tar.gz文件直接解压到自己想要的文件夹下面即可如下图:我是放在D:\tools目录下面
然后可以看见zookeeper里面的目录结构
然后修改配置文件conf下的zoo_sample.cfg文件,我直接将zoo_sample.cfg文件重命名为zoo.cfg当然你也可以直接复制zoo_sample.cfg然后命名为zoo.cfg。其实我们的真正的配置文件就是我们的zoo.cfg文件。
然后其实到bin目录下双击运行zkServer.cmd就可以运行起来了
运行效果如图:
这样就运行起来了,那么我们再回去看一下zoo.cfg这个配置文件。