标签:处理 class nec fun stat ati ESS getchild 配置
Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
3台虚拟机,rhel server:
|
|
Zookeeper 的安装非常简单。
最新的版本可以通过官网下载,当前版本为zookeeper-3.4.9。
解压并复制到/usr/local/zookeeper-3.4.9目录
|
|
配置文件在conf目录,需要将默认的zoo_sample.cfg重命名为zoo.cfg,然后编辑:
|
|
除了修改zoo.cfg配置文件,集群模式下还要配置一个文件myid,这个文件在dataDir目录下,这个文件里面就有一个数据就是A的值,Zookeeper启动时会读取这个文件,拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是哪个server。
3台机器做同样的配置。
进入zookeeper-3.4.9/bin目录中,执行
|
|
当前执行命令所在的目录会生成日志文件:zookeeper.out,打开日志会发现报大量错误,这是因为现在集群只起了1台server,zookeeper服务器端起来会根据zoo.cfg的服务器列表发起选举leader的请求,因为连不上其他机器而报错,那么当我们起第2个zookeeper实例后,leader将会被选出,从而一致性服务开始可以使用,这是因为3台机器只要有2台可用就可以选出leader并且对外提供服务(2n+1台机器,可以容n台机器挂掉)。
启动完集群就可以使用了。
可以先通过zookeeper自带的客户端交互程序来简单感受下zookeeper到底做一些什么事情。
进入zookeeper-3.4.9/bin(3个server中任意一个)下
|
|
|
|
zookeeper使用了一个类似文件系统的树结构,数据可以挂在某个节点上,可以对这个节点进行删改。当改动一个节点的时候,集群中活着的机器都会更新到一致的数据。
Zookeeper的使用主要是通过创建其jar包下的Zookeeper实例,并且调用其接口方法进行的,主要的操作就是对znode的增删改操作,监听znode的变化以及处理。
引入zookeeper-3.4.9目录中zookeeper-3.4.9.jar和zookeeper-3.4.9/lib目录中slf4j-api-1.6.1.jar,编写代码测试:
|
|
执行结果:
|
|
也可以查看集群中每台机器的数据,验证一致性。
zookeeper从设计模式角度来看,是一个基于观察者模式设计的分布式服务管理框架,负责存储和管理大家都关心的数据,
然后接受观察者的注册,一旦这些数据发生变化,zookeeper就将负责通知已经在zookeeper上注册的那些观察者做出相应
的反应,从而实现集群中类似Master/Slave管理模式。
标签:处理 class nec fun stat ati ESS getchild 配置
原文地址:https://www.cnblogs.com/lijianming180/p/12389302.html