1、zookeeper配置文件简介:
* zookeeper的配置文件在conf目录下,有zoo_sample.cfg, 需要将zoo_sample.cfg 改成zoo.cfg,由于zookeeper在启动时会找这个文件作为默许的配置文件。
* 参数:
tickTime:zookeeper
服务器或客户端与
服务器之间保持心跳时间间隔参数。每一个ticktime时间就会发送1个心跳。
dataDir : zookeeper数据存储目录。默许情况会把日志文件保存到这个目录。
clientPort :zookeeper
服务器商品,zookeeper会监听这个端口,接受客户真个要求。
2、集群模式:
zookeeper不但可以单机提供服务,同时也支持多机组成集群来提供服务。实际上zookeeper还支持另外1种伪集群的方式,就是可以在1台机器人上配置多个zookeeper实例。
配置(zoo.cfg):
initLimit=5
syncLimit=2
server.1=192.168.211.1:2888:3888
server.2=192.168.211.2:2888:3888
* initLimit :这个配置项是用来配置zookeeper接受客户端初始化连接时最长能忍耐多少个心跳时间间隔数。
* syncLimit : leader与Follower之间发送消息、要求利用于时间长度,最长不能超过量少个ticktime的时间长度。
* server.A = B : C : D 其中A是1个数字,表示这是第几号
服务器;B是这
服务器的ip地址; C表示的是这个
服务器与集群中的leader
服务器交换信息的端口; D表示的是万1集群中的leader
服务器挂了,需要1个端口来重新进行选举新的leader。
除修改zoo.cfg配置文件,集群模式下还要配置1个文件myid, 这个文件在dataDir目录下,这个文件里面就是1个数据就是A的值,zookeeper启动时会读取这个文件,拿到里面的数据与zoo.cfg里面的配置信息从而判断究竟是哪一个server。
3、利用场景
Zookeeper人设计模式的角度来看是1个视察者模式的散布式服务管理框架,负责存储和管理大家关心的数据,然后接受视察者的注册,1旦这些数据产生变化,Zookeeper就会负责通知已注册过了的那些observer做出相应的反应,从而实现集群中类似的Master、Slave管理模式。
* 统1命名服务(Name Service)
散布式利用中,通常需要有1套完全的命名规则, 能够产生唯1的名称 又便于人辨认和记住,通常情况下用树形的名称结构是1个理想的选择,树形的名称结构是1个有层次的目录结构,即对人友好又不会重复。 Name Service是Zookeeper内置的功能, 只须调用其api就能够实现。如调用 create接口就能够容易的创建 1个目录节点。(与JNDI 差不多吧)
* 配置管理
配置的管理费用在散布式利用环境中很常见,例犹如1个利用系统需要多个pc server运行, 但是它们运行的利用系统的某些配置项是相同的,如果要修改这些相同的的配置项,那末就必须同时修改每台运行这个利用系统的PCserver 这样非常容易出错。 像这样的配置信息完全可以交给zookeeper管理,将配置信息保存在zookeeper的某个目录节点上,然后将所有需要修改的利用机器监控配置信息的状态,1旦配置信息产生变化,每台机器就会收zookeeper的通知。