Zookeeper 是我们常用的分布式注册中心,很有必要学习明白,最便捷的入口当然是ZK官网,官网地址,看完之后我们从最核心地方分析一下:
1、ZK集群一主多从,主节点挂后迅速选出leader 视图分析:
1.1、视图右边本来是五台服务器,一个leader主节点 ,四个从节点,主节点挂了之后还剩4个节点,此时停止对外服务,然后四个节点迅速选出一个主节点,耗时200ms左右,此时服务恢复正常。
1.2、客户端访问zk集群,往其注册写入数据,均要传给leader,让leader负责写,完事后通知所有从节点,通知过半后该数据就可以对外提供服务了,提现了分布式环境下的弱一致性(最终一致性)和可用性。
1.3、每个客户端和服务端交互时,都会创建一个自己的session,如果此时客户端挂了或者执行完了,session会自动销毁。
1.4、ZK是做分布式协调用的,要提现出高性能,高可用,轻便性,每个节点最多1M大小,因此,不要用它做数据库。
2、ZK内部的数据结构视图:
zk是一个目录树结构,可以存简单的数据,以节点的形式存在,其中临时顺序节点可以做分布式锁。
3、ZK特性视图分析:
这是zk的主要特性,学习过程中可以慢慢理解。
4、ZK统一管理模式视图:
节点统一分组管理,统一命名,节点数据在所有服务同步,一个目录可以放多个字目录节点数据。
5、ZK在linux服务器的安装步骤:
服务器节点准备 node01~node04 4台
1,安装jdk,并设置javahome*, node01:
2,下载zookeeper zookeeper.apache.org
3,tar xf zookeeper.*.tar.gz
4,mkdir /opt/mashibing
5, mv zookeeper /opt/mashibing
6,vi /etc/profile
export ZOOKEEPER_HOME=/opt/mashibing/zookeeper-3.4.6
export PATH=$PATH:$ZOOKEEPER_HOME/bin
7,cd zookeeper/conf
8,cp zoo.sem*.cfg zoo.cfg
9,vi zoo.cfg
dataDir=
server.1=node01:2888:3888
10, mkdir -p /var/mashibing/zk
11,echo 1 > /var/mashibing/zk/myid
12,cd /opt && scp -r ./mashibing/ node02:`pwd`
13,node02~node04 创建 myid
14,启动顺序 1,2,3,4
15,zkServer.sh start-foreground
#常用命令如下:
zkCli.sh
help
ls /
create /ooxx ""
create -s /abc/aaa
create -e /ooxx/xxoo
create -s -e /ooxx/xoxo
get /ooxx
netstat -natp | egrep '(2888|3888)'
到此ZK的理论和安装分享完毕,下篇我们分享服务器命令实战操作,敬请期待!