文章目录
Zookeeper
1.1 ZooKeeper简介
- 中间件,提供协调服务。
- 作用于分布式系统,发挥其优势,可以为大数据服务。
- 支持java,提供java和c语言的客户端API
1.2 分布式系统概念
- 很多台计算机组成一个整体,一个整体一致对外并且处理同一请求。
- 内部的每台计算机都可以互相通信(rest/rpc)。
- 客户端到服务端的一次请求到响应结束会历经多台计算机。
负载可以大大增加,用户请求可以分流到不同服务中去
1.3 zk的相关特性
- 一致性:数据一致性,数据按照顺序分批入库。
- 原子性:事务要么成功要么失败,不会局部化。
- 单一视图:客户端连接集群中的任一zk节点,数据都是一致的。
- 可靠性:每次对zk的操作状态都会保存在服务端。
- 实时性:客户端可以读取到zk服务端的最新数据。
单机zookeeper安装
JDK安装
- tar -zxvf xxx.tar.gz 解压jdk压缩包
- vim /etc/profile 修改环境变量
export JAVA_HOME=/usr/jdk8
export CLASSPATH=.:%JAVA_HOME%/lib/dt.jar:%JAVA_HOME%/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
- source /etc/profile 刷新环境变量
zookeeper下载、安装及配置环境变量
- 下载https://archive.apache.org/dist/zookeeper/一个版本
- 通过tar -zxvf 解压文件,mv 重命名然后移动到/usr/local目录下
- 添加环境变量vim /etc/profile
export JAVA_HOME=/usr/jdk8
export ZOOKEEPER_HOME=/usr/local/zookeeper
export CLASSPATH=.:%JAVA_HOME%/lib/dt.jar:%JAVA_HOME%/lib/tools.jar
export PATH=$PATH:$ZOOKEEPER_HOME/bin:$JAVA_HOME/bin
- source /etc/profile更新配置
zookeeper文件夹主要目录
- bin:主要的运行命令
- conf:存放配置文件,需要修改zk.cfg
- contrib:附加的一些功能。
- dist-maven:mvn编译后的目录
- docs:文档
- Lib:需要依赖的Jar包
- revipes:案例demo代码
- src:源码
zookeeper配置文件介绍,运行zk
zoo.cfg配置
- tickTime:于计算的时间单元。比如session超时:N* tickTime
- initLimit:用于集群,允许从节点连接并同步到 master 节点的初始化连接时间,以 tickTime 的倍数来表示
- syncLimit:用于集群,master 主节点与从节点之间发送消息,请求和应答时间长度。(心跳机制)
- dataDir:必须配置
- dataLogDir:日志目录,如果不配置会和 dataDir 公用
dataDir=/usr/local/zookeeper/dataDir
dataLogDir=/usr/local/zookeeper/dataLogDir
创建dataDir
- clientPort:连接服务器的端口,默认2181
运行zk
- 进入zookeeper/bin 执行
- ./zkServer.sh start 运行
ZooKeeper JMX enabled by default
Using config: /data/tools/software/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
- ./zkServer.sh status 查询状态
ZooKeeper JMX enabled by default
Using config: /data/tools/software/zookeeper/bin/../conf/zoo.cfg
Mode: standalone