zookeeper可以实现统一的配置中心和分布式锁。
先简单来说一下搭建一个zookeeper集群(本文简单描述使用一台服务器实现伪集群,测试机器多的话,可以拿3台或者更多来试验一下)
1.确保已经安装了java ,没有的话,安装一下
java -version
2.下载安装
cd /usr/local
mkdir zookeeper_cluster
cd zookeeper_cluster
创建zookeeper3个节点目录
mkdir zookeeper01
mkdir zookeeper02
mkdir zookeeper03
创建zookeeper3个节点数据目录
mkdir data01
mkdir data02
mkdir data03
创建zookeeper3个节点日志目录
mkdir log01
mkdir log02
mkdir log03
下载地址见:https://zookeeper.apache.org/releases.html#download
节点01解压缩开始安装,其他两个节点一样
cd zookeeper01
wget https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.6.1/apache-zookeeper-3.6.1-bin.tar.gz
tar -zxvf apache-zookeeper-3.6.1-bin.tar.gz
修改配置文件
cd apache-zookeeper-3.6.1-bin.tar.gz/conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
主要改这几个地方
dataDir=/usr/local/zookeeper/data01
dataLogDir=/usr/local/zookeeper/log01
clientPort=2181
server.1=localhost:2287:3387
server.2=localhost:2288:3388
server.3=localhost:2289:3389
本机采用一台服务器搭建伪集群,所以clientPort端口必须不同,选举端口和通信端口也不同,如果3台不同的机器,hosthost换成不同的Ip即可,其他一样,clientPort都可为2181,选举端口和通信端口都可以为2288:3388
02,03节点则clientPort换成2182,2183,数据和日志文件夹换成02,03即可
创建myid在data目录下
cd /usr/local/zookeeper/data01
touch myid
vim myid
1
wq!
其他两台则写2,3
一台配置好了,其他两台复制一下,改下配置即可
cp -r zookeeper01 zookeeper02
cp -r zookeeper01 zookeeper03
3.依次启动3个节点
cd /usr/local/zookeeper_cluster/zookeeper01/bin
[root@VM_0_7_centos bin]# ./zkServer.sh start
启动后可以查看集群状态
[root@VM_0_7_centos bin]# ./zkServer.sh status
[root@VM_0_7_centos bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper_cluster/zookeeper-02/bin/../conf/zoo.cfg
Client port found: 2182. Client address: localhost.
Mode: leader
[root@VM_0_7_centos bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper_cluster/zookeeper-01/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower
[root@VM_0_7_centos bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper_cluster/zookeeper-03/bin/../conf/zoo.cfg
Client port found: 2183. Client address: localhost.
Mode: follower
可以看到02节点成了leader,01和03成了follower
4、通过任何一个节点访问zookeeper集群
cd /usr/local/zookeeper_cluster/zookeep01/bin
[root@VM_0_7_centos bin]# ./zkCli.sh -server 127.0.0.1:2181
5.创建,获取,修改,删除节点数据
[zk: 127.0.0.1:2181(CONNECTED) 1] create /zknode01 hello,world
Node already exists: /zknode01
[zk: 127.0.0.1:2181(CONNECTED) 2] create /zknode_01 hello,world
Created /zknode_01
[zk: 127.0.0.1:2181(CONNECTED) 3] get /zknode_01
hello,world
[zk: 127.0.0.1:2181(CONNECTED) 4] set /zknode_01 abc
[zk: 127.0.0.1:2181(CONNECTED) 5] get /zknode_01
abc
[zk: 127.0.0.1:2181(CONNECTED) 6] delete /zknode_01
[zk: 127.0.0.1:2181(CONNECTED) 7] get /zknode_01
相关命令
ls path:查看某个节点下的所有子节点信息
ls / :列出根节点下所有的子节点信息
create [-s] [-e] path data acl
-s 表示是顺序节点
-e 标识是临时节点
path 节点路径
data 节点数据
acl 节点权限
quit 退出当前客户端
下篇文章写下如何使用zookeeper实现统一的配置中心。