文章目录
zookeeper日志
快照文件(snapshot)
当事务日志记录的次数达到一定数量后,会将内存数据库序列化一次,使其持久化到磁盘上,序列化后的文件称为“快照文件”,每次生成快照文件都会生成新的事务日志。
snapshot日志配置
# conf/zoo.cfg
dataDir=./data/ # snapshot日志文件存放在./data/version-2/目录下
snapshot文件命名方式
# snapshot.[任期][最后一条事务日志的zxid]
snapshot.a00011bc0 # snapshot.[a][00011bc0]
snapshot生成时间
为避免zk集群中节点集中在某一时刻生成snapshot,zookeeper会在事务日志数量达到一个随机数时生成snapshot,随机数在snapCount/2+1和 snapCount之间,snapCount默认为100000。
snapshot查看
export ZK_HOME=/opt/zkCluster/zookeeper01
export ZK_DATA_DIR=/opt/zkCluster/zookeeper01/data
java -cp $ZK_HOME/zookeeper-3.4.14.jar:\
$ZK_HOME/lib/slf4j-api-1.7.25.jar:\
$ZK_HOME/lib/slf4j-log4j12-1.7.25.jar:\
$ZK_HOME/lib/log4j-1.2.17.jar \
org.apache.zookeeper.server.SnapshotFormatter \
$ZK_DATA_DIR/version-2/snapshot.100033c9d
- 输出
ZNode Details (count=94308):
----
/
cZxid = 0x00000000000000
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x00000000000000
mtime = Thu Jan 01