微信公众号微网站开发/宁德市属于哪个省份
引言
从zookeeper就可以看出它的作用,动物管理员。zookeeper是雅虎的项目,这里也有有一段趣闻,雅虎之前很多项目都是用动物名命的,因为各个以动物命名的分布式组件放在一起,雅虎的整个分布式系统看上去就像一个大型的动物园了,而Zookeeper正好要用来进行分布式环境的协调一一于是,Zookeeper的名字也就由此诞生了。
所以可以看出ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务。
下载
下载地址:https://archive.apache.org/dist/zookeeper/
找到自己想要的版本下载下来
然后上传到自己的服务器上
解压
解压到自己想要安装的目录,建议/usr/local/
tar -zxvf apache-zookeeper-3.5.8-bin.tar.gz -C /usr/local/
然后重命名下zookeeper目录名
cd /usr/local/
mv apache-zookeeper-3.5.8-bin zookeeper
新建目录
在zookeeper安装目录下创建data目录和log目录,方便后续配置文件中指定目录,当然这里是我的选择,你到时候也可以指定别的目录
修改配置文件
/usr/local/zookeeper/conf目录下有个配置模板文件zoo_sample.cfg
复制一个 重命名为zoo.cfg
cp zoo_sample.cfg zoo.cfg
并修改zoo.cfg内容,基本常见配置参数如下
参数 | 说明 |
tickTime | 基本事件单元,单位毫秒。用来设置心跳,最小的session过期时间为tickTime的两倍,ZK中的其他时间都是以这个为倍数的。 |
dataDir | 存储内存中数据库快照的位置,默认是/tmp/zookeeper,这个只是例子,我们修改为ZK家目录下的data,这个data其实也没有,我们需要手动建立。快照文件并不是实时的,运行一段时间才会有。 |
dataLogDir | 日志路径,也就是事务日志。我们知道对ZK的读和写都是在内存中完成,所以速度非常快,但是如果停止ZK再启动数据还是需要保证的,所以就会有这样一个路径用来保存事务日志,当ZK再次启动时加载到内存重演过程来恢复数据。这个目录会有一个叫做version-2的目录,这个目录确定了当前事务日志的版本号,当下次某个版本的ZK对其进行修改时,版本号发生变化。日志文件大小为64M,如果数据比较多就会有多个这样大小的文件。 建议将事物日志保存到单独的磁盘而且是高速磁盘。因为为了一致性,ZK对于客户端的写入请求在返回之前就要把本次操作写入到事物日志中。logDir |
logDir | zookeeper服务的日志路径 |
clientPort | 监听客户端连接的端口 |
案例如下:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/log
clientPort=2181#maxClientCnxns=60
#autopurge.snapRetainCount=3
#autopurge.purgeInterval=1#搭建集群的时候需要下面配置
# 在zoo.cfg这个文件中,配置集群信息是存在一定的格式:service.N =YYY: A:B
# N:代表服务器编号(也就是myid里面的值)
# YYY:服务器地址
# A:表示 Flower 跟 Leader的通信端口,简称服务端内部通信的端口(默认2888)
# B:表示 是选举端口(默认是3888)
server.1=0.0.0.0:2888:3888 # 这个时当前服务器,当前服务器的id设为1
server.2=192.168.30.135:2888:3888 # 这个是另一台zookeeper服务器,id设为2
如果是搭建集群,也要在/usr/local/zookeeper/data目录下新建一个myid文件,里面内容为当前zookeeper服务器的编号,因为当前zookeeper服务器配置文件中配置的是1,所以该myid的内容也是1
启动
启动:/usr/local/zookeeper/bin/zkServer.sh start
我这里是安装了三个zookeeper节点,下面是其中一个点点的配置文件
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/log
clientPort=2181#maxClientCnxns=60
#autopurge.snapRetainCount=3
#autopurge.purgeInterval=1
server.1=192.168.30.133:2888:3888
server.2=192.168.30.135:2888:3888
server.3=0.0.0.0:2888:3888 #这个的IP是192.168.30.128 这个配置文件所在的服务器
三个节点全部启动之后分别是
192.168.30.128:leader节点(自动选举的)
192.168.30.133:follower节点
192.168.30.135:follower节点