Zookeeper技术介绍
关于ZooKeeper的知识点总结了一个思维导图分享给大家
ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
ZooKeeper包含一个简单的原语集提供Java和C的接口。2021面试题整理
ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在zookeeper-3.4.3\src\recipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本。
主要作用是用来解决分布式应用中经常遇到的一些数据管理问题,如集群管理、统一命名管理、分布式配置管理、分布式消息队列、分布式锁、分布式通知协调
官方网站:https://zookeeper.apache.org/
zookeeper体系结构
zk的集群中有一个Leader,有一个或多个follower,它们之间是相互通信的,然后还存在一个客户端用来访问zk服务器。
服务器端具有fast fail特性,一旦主故障后,会选举从成为新的主,主从模式是目前最常见的模式。
zookeeper名字空间由节点NODE构成,类似于文件系统,其中各个节点相当于目录和文件,通过路径作为唯一标识,与文件系统不同的是,每个节点具有与之对应的数据内容,同时也可以具有子节点,它用来存储协调数据,如状态、配置、位置信息、每个节点存储的数据量很小,KB级别.
watches介绍
zk对节点的增、删、改、查都可以触发监听
watch事件是一次性触发器,当它监视的数据发生变化时,通知设置了该客户端
Zookeeper安装布署
四台服务器
zk-001 10.0.0.8
zk-002 10.0.0.9
zk-003 10.0.0.10
zk-client 10.0.0.100
下载安装JDK环境
tar zxf jdk-8u60-linux-x64.tar.gz
mv jdk1.8.0_60 /usr/local/jdk
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.: J A V A H O M E / l i b / d t . j a r : JAVA_HOME/lib/dt.jar: JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar