一、前言

前面介紹了Zookeeper的系統(tǒng)模型,下面進一步學習Zookeeper的底層序列化機制,Zookeeper的客戶端與服務端之間會進行一系列的網(wǎng)絡通信來實現(xiàn)數(shù)據(jù)傳輸,Zookeeper使用Jute組件來完成數(shù)據(jù)的序列化和反序列化操作。

二、Jute

Jute是Zookeeper底層序列化組件,其用于Zookeeper進行網(wǎng)絡數(shù)據(jù)傳輸和本地磁盤數(shù)據(jù)存儲的序列化和反序列化工作。

2.1 Jute序列化

MockReHeader實體類

 View Code

Main

 View Code

運行結(jié)果

sessionId = 0, type = null
sessionId = 14673999700337486, type = ping

說明:可以看到MockReHeader實體類需要實現(xiàn)Record接口并且實現(xiàn)serialize和deserialize方法。

OutputArchive和InputArchive分別是Jute底層的序列化器和反序列化器。

在Zookeeper的src文件夾下有zookeeper.jute文件,其內(nèi)容如下

 

網(wǎng)友評論