zookeeper环境的准备
简介
介绍
- 是什么
zooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,为分布式提供一致性服务。 - 有什么用
它提供了分布式一致性问题解决方案 - 特性
顺序一致性、原子性、可靠性、实时性等
原理
zookeeper维护了一套被称为znode节点的数据结构,每个节点拥有唯一的id,并且可以存放对应的姓名与数据。
znode节点:
znode节点分为持久化节点和临时节点两大类,分别包含永久(临时)与顺序
watcher通知
zk中节点发生变化会通过watcher对客户端进行通知
watcher接口:
public interface Watcher {
public interface Event {
public enum KeeperState {
@Deprecated
Unknown (-1),
Disconnected (0),
NoSyncConnected (1),
SyncConnected (3),
AuthFailed (4),
ConnectedReadOnly (5),
SaslAuthenticated(6),
Expired (-112);
}
...
}
服务状态
LOOKING:集群中leader机器宕机其他机器会出现该状态,表示要选取新的leader
FOLLOWING:从机器状态
LEADING:主机器状态
OBSERVING:观察者状态
集群选取机制
zookeeper集群最少要有3台机器,一主两从。
leader机器作为集群的核心,所有数据都会在此统一,并同步至其他从机器上。
当leader机器宕机时,其他从机器会采取选取机制重新选取leader。
选取机制:投票选举机制,并依据机器id、最新事务id来判断选举机器为谁。
应用
- 下载
可以去官方网站下载,也可以直接在服务器上下载安装
1.1 环境
centos7
1.2指令
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz - 启动
2.1解压
tar -zxvf xx.gz
2.2配置调整
如果不需要调整,则可跳过本步,拷贝zoo_sample.cfg为zoo.cfg
cp xx.cfg xxx.cfg
目的:更改zk的日志与数据存放位置
2.3更改系统环境变量
vi /etc/profile添加:
然后重新加载:source /etc/profileexport ZOOKEEPER_HOME=/home/zookeeper/zookeeper-3.4.9/ export PATH=$ZOOKEEPER_HOME/bin:$PATH export PATH
2.4启动
进入bin路径:zkServer.sh start
启动成功。 - 关于集群的配置
集群配置需要调整上述zoo.cfg文件,新增集群节点:
server.1=xx.xx.xx.xx:2288:3888
server.2=xx.xx.xx.xxx:2289:3889
…
其中2288为与leader交换信息端口,3888为leader宕机后选取新leader的端口 - 操作
4.1查询
进入bin目录:./zkCli.sh -server 192.168.99.128:2181
ls查看:
创建:create [path]
删除:delete [path]
删除文件夹及内容:rmi [path]
等等…