一、前言

前面介绍了Zookeeper的系统模型,下面进一步学习Zookeeper的底层序列化机制,Zookeeper的客户端与服务端之间会进行一系列的网络通信来实现数据传输,Zookeeper使用Jute组件来完成数据的序列化和反序列化操作。

二、Jute

Jute是Zookeeper底层序列化组件,其用于Zookeeper进行网络数据传输和本地磁盘数据存储的序列化和反序列化工作。

2.1 Jute序列化

MockReHeader实体类

 View Code

Main

 View Code

运行结果

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

说明:可以看到MockReHeader实体类需要实现Record接口并且实现serialize和deserialize方法。

OutputArchive和InputArchive分别是Jute底层的序列化器和反序列化器。

在Zookeeper的src文件夹下有zookeeper.jute文件,其内容如下