一、前言
前一篇已經(jīng)分析了序列化,這篇接著分析Zookeeper的持久化過(guò)程源碼,持久化對(duì)于數(shù)據(jù)的存儲(chǔ)至關(guān)重要,下面進(jìn)行詳細(xì)分析。
二、持久化總體框架
持久化的類(lèi)主要在包org.apache.zookeeper.server.persistence下,此次也主要是對(duì)其下的類(lèi)進(jìn)行分析,其包下總體的類(lèi)結(jié)構(gòu)如下圖所示。
· TxnLog,接口類(lèi)型,讀取事務(wù)性日志的接口。
· FileTxnLog,實(shí)現(xiàn)TxnLog接口,添加了訪問(wèn)該事務(wù)性日志的API。
· Snapshot,接口類(lèi)型,持久層快照接口。
· FileSnap,實(shí)現(xiàn)Snapshot接口,負(fù)責(zé)存儲(chǔ)、序列化、反序列化、訪問(wèn)快照。