下文中出现的zooKeeper使用ZK代替。
1. 特性
- 一致性:数据一致性,数据按照顺序入库。
- 原子性:保证所有的节点数据的一致性。
- 单一视图:任何节点的数据都是一致的。
- 可靠性:每次对ZK的操作日志都是存储在服务端。
- 实时性:客户端可以实时读取到ZK服务端的最新数据。
2. 环境安装
- 先查看当前系统中是否已经安装了jdk
- 查看系统自带jdk:
rpm -qa | grep gcj
- 查看已安装的jdk:
rpm -qa | grep jdk
- 卸载jdk:
yum -y remove java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
; 此处需要改为用户看到的jdk版本文件名。
- 查看系统自带jdk:
- 需要jdk的支持
- 下载相应环境的jdk版本,本例中使用的是Linux64位环境的CentOS7. 请点击下载jdk8u261
- 使用tar进行解压操作:
tar -zxvf jdk8u261.tar.gz /usr/local/java/
. - 然后,配置环境变量:
- 编辑环境文件:
vim /etc/profile
. - 添加jdk环境变量:
#java environment export JAVA_HOME=/usr/local/java/jdk1.8.0_261 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin
- 此处的JAVA_HOME需要改成用户解压的jdk路径。
- 使得profile文件生效:
source /etc/profile
。
- 编辑环境文件:
- 测试java是否配置成功:
- 测试jdk的bin中的指令是否可用:
java
以及javac
。前者为运行jar命令。后者为编译命令。 - 查看java版本信息,是否为刚刚安装的jdk:
java -version
。
- 测试jdk的bin中的指令是否可用:
- ZK安装:
- 下载zookeeper对应版本的安装包:请点击ZK下载
- 进行解压:
tar -zxvf zookeeper-3.3.3.tar.gz zookeeper
。
3.ZK文件目录
- bin:ZK相关的运行指令。
- conf:配置文件。
- contrib:ZK的附件功能。
- dist-mvn:mvn编译后的目录。
- docs:ZK帮助文档。
- lib:ZK需要依赖的jar。
- recipes:ZK提供的一些Demo。
- src:ZK的源码;源码爱好者,可以自由研究,运行。
4. ZK配置:
- ZK默认的配置文件为 conf/zoo_sample.cfg,需要将其修改为zoo.cfg。
- zoo.cfg文件的关键配置项:
- TickTime(ms): 基本上ZK配置中,使用到时间的配置的时候。都是以TickTime作为基数。
- initLimit:用于集群,允许从节点连接并同步到master节点的初始化连接时间,以TickTime作为时间基数。
- syncLimit:用于集群,master主节点与从节点发送信息,请求和应答的时间长度。
- dataDir:ZK数据存储目录。
- dataLogDir:ZK日志目录。若不配置,ZK会把数据和日志存储在同一个目录下。
- clientPort:ZK服务端端口。默认为2181。
江城子·乙卯正月二十日夜记梦
【作者】苏轼 【朝代】宋
十年生死两茫茫,不思量,自难忘。千里孤坟,无处话凄凉。纵使相逢应不识,尘满面,鬓如霜。
夜来幽梦忽还乡,小轩窗,正梳妆。相顾无言,惟有泪千行。料得年年肠断处,明月夜,短松冈。
若爱请深爱;若别离,也能好聚好散。都能够给对方留下最美好的记忆。