【Zookeeper讀書筆記-2】序列化框架Jute

1 Jute概念

ZK客戶端與服務端的網絡通信和數據傳輸,需要首先解決的事數據序列化與反序列化問題。

Jute前身是Hadoop Record IO,後來Hadoop框架採用Avro(跨語言特性好,數據結構豐富,對MR的支持),Record IO就被剝離出來成爲Jute。

Jute對於ZK不是性能瓶頸,因此一直沿用。

2 Jute基礎

2.1 序列化

網絡通信中,基於二進制傳輸數據,這就會涉及到序列化,反序列化過程。

序列化:將內存中的對象轉換成二進制的過程

反序列化:從網絡中接收到的數據轉換成內存中對象的過程

序列化反序列化中還需要定義序列化協議即數據相互變換的機制。

2.2 Jute序列化機制

Jute實現序列化的步驟包括:

構建序列化對象:對象實現Record接口,自定義serialize與deserialize方法

設計序列化器:序列化器接口是OutputArchive,三種實現:BinaryOutputArchive,CsvOutputArchive和XmlOutputArchive,分別對應無特殊格式,有csv格式和有xml格式的數據序列化。

設計反序列化器:反序列化器接口是InputArchive,三種實現:BinaryInputArchive,CsvInputArchive和XmlInputArchive,分別對應無特殊格式,有csv格式和有xml格式的數據序列化。

3 Jute通信協議

請求:請求頭,請求體

響應:響應頭,響應體

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章