首先先介绍配置文件吧,

conf/zoo.cfg ,zoo是默认名称,当然也可以随便改名,只需在在启动时指定一下就可以了如 bin/zkServer.sh start xxx  .

里面最少需要三个参数

tickTime 2000,  zookeeper 最小单位是毫秒, 这个时间是心跳检测的时间, session最低的过期时间是两倍tickTime

dataDir /var/zookeeper/data  指定数据文件路径. 里面会存储一些内存数据库的快照,以及更新数据库时的事务控制日志

port  2181  监听的端口,不解释


initLimit  5 ,  其他服务器连接到leader的最大时间,5×tickTime , 超过这个时间,则不再接受该服务器

syncLimit 2  是其他服务器与leader 最大可连续不同步的时间, 2*tickTime, 及如果服务器与leader失去连接长达4s则说明服务器掉线了


应用场景; 

       20台服务器, 1台主服务器,一台备用服务器

        主服务器在zookeeper中注册 /zookeeper/master  hostName

        备用主服务器监控/zookeeper/master ,如果master中的值发生变化就把自己启动为主服务器,并将自己的ip放到/zookeeper/master中

        20台服务器在zookeeper中注册 /zookeeper/nodes/node1  ip,还有服务器的状态

        有一台web-cgi服务器,监控/zookeeper/master ,发生变化时取得最新的ip保存到本地

        web-cgi 接收到搜索请求时,将请求转发到主服务器中,主服务器遍历出各分布式服务器的状态,等状态正常时,然后提供服务后将结果返回.


zookeeper的功能就是维护分布式系统的配置情况