国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

《Zookeeper》從零開始學(xué)Zookeeper源碼(二)之?dāng)?shù)據(jù)序列化與通信協(xié)議

這篇具有很好參考價(jià)值的文章主要介紹了《Zookeeper》從零開始學(xué)Zookeeper源碼(二)之?dāng)?shù)據(jù)序列化與通信協(xié)議。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

序列化與反序列化

zookeeper的客戶端與服務(wù)端、服務(wù)端與服務(wù)端之間會(huì)進(jìn)行一系列的網(wǎng)絡(luò)通信,在進(jìn)行數(shù)據(jù)的傳輸過程中就涉及到序列化與反序列化,zookeeper使用Jute作為它的序列化組件,在使用的時(shí)候,需要序列化與反序列化的對(duì)象實(shí)現(xiàn)Record接口并實(shí)現(xiàn)該接口的serialize()deserialize()方法,先看下接口Record

《Zookeeper》從零開始學(xué)Zookeeper源碼(二)之?dāng)?shù)據(jù)序列化與通信協(xié)議,Zookeeper,zookeeper

它只有兩個(gè)方法,分別是serialize()deserialize(),下面以ReplyHeader為例看下它的使用。

    1. 實(shí)現(xiàn)接口Record

《Zookeeper》從零開始學(xué)Zookeeper源碼(二)之?dāng)?shù)據(jù)序列化與通信協(xié)議,Zookeeper,zookeeper

    1. 創(chuàng)建BinaryOutputArchive

《Zookeeper》從零開始學(xué)Zookeeper源碼(二)之?dāng)?shù)據(jù)序列化與通信協(xié)議,Zookeeper,zookeeper

    1. 序列化。上一步中調(diào)用BinaryOutputArchivewriteRecord()方法,看下源碼:

《Zookeeper》從零開始學(xué)Zookeeper源碼(二)之?dāng)?shù)據(jù)序列化與通信協(xié)議,Zookeeper,zookeeper

進(jìn)入writeRecord()方法調(diào)用Record實(shí)現(xiàn)類的serialize()方法進(jìn)行序列化。

    1. 反序列化。創(chuàng)建BinaryInputArchive,調(diào)用Record實(shí)現(xiàn)類的deserialize()方法進(jìn)行反序列。

《Zookeeper》從零開始學(xué)Zookeeper源碼(二)之?dāng)?shù)據(jù)序列化與通信協(xié)議,Zookeeper,zookeeper

以上就是Jute進(jìn)行序列化與反序列化的基本過程。

通信協(xié)議

基于TCP/IP協(xié)議,zookeeper實(shí)現(xiàn)了自己的通信協(xié)議,設(shè)計(jì)上,客戶端與服務(wù)端、服務(wù)端與服務(wù)端之間的網(wǎng)絡(luò)通信數(shù)據(jù)結(jié)構(gòu),對(duì)于請(qǐng)求,包含數(shù)據(jù)總長(zhǎng)度、請(qǐng)求頭與請(qǐng)求體,對(duì)于響應(yīng),包含數(shù)據(jù)總長(zhǎng)度、響應(yīng)頭與響應(yīng)體,如下圖。

請(qǐng)求協(xié)議:

《Zookeeper》從零開始學(xué)Zookeeper源碼(二)之?dāng)?shù)據(jù)序列化與通信協(xié)議,Zookeeper,zookeeper

響應(yīng)協(xié)議:

《Zookeeper》從零開始學(xué)Zookeeper源碼(二)之?dāng)?shù)據(jù)序列化與通信協(xié)議,Zookeeper,zookeeper

請(qǐng)求頭的數(shù)據(jù)結(jié)構(gòu)

《Zookeeper》從零開始學(xué)Zookeeper源碼(二)之?dāng)?shù)據(jù)序列化與通信協(xié)議,Zookeeper,zookeeper

響應(yīng)頭的數(shù)據(jù)結(jié)構(gòu)

《Zookeeper》從零開始學(xué)Zookeeper源碼(二)之?dāng)?shù)據(jù)序列化與通信協(xié)議,Zookeeper,zookeeper

對(duì)于請(qǐng)求體與響應(yīng)體,不同的請(qǐng)求體和響應(yīng)體的數(shù)據(jù)結(jié)構(gòu)是不同的,可以參考/zookeeper-jute/target/generated-sources/java/org/apache/zookeeper/proto該目錄下的類。
文章來源地址http://www.zghlxwxcb.cn/news/detail-643778.html

到了這里,關(guān)于《Zookeeper》從零開始學(xué)Zookeeper源碼(二)之?dāng)?shù)據(jù)序列化與通信協(xié)議的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • c++ 使用rapidjson對(duì)數(shù)據(jù)序列化和反序列化(vs2109)

    c++ 使用rapidjson對(duì)數(shù)據(jù)序列化和反序列化(vs2109)

    ??RapidJSON是騰訊開源的一個(gè)高效的C++ JSON解析器及生成器,它是只有頭文件的C++庫(kù),綜合性能是最好的。 1. 安裝 在NuGet中為項(xiàng)目安裝tencent.rapidjson 2. 引用頭文件 #include rapidjson/document.h #include rapidjson/memorystream.h #include rapidjson/prettywriter.h 3. 頭文件定義 添加測(cè)試json字符串和類型

    2024年02月07日
    瀏覽(21)
  • Flink 數(shù)據(jù)序列化

    Flink 數(shù)據(jù)序列化

    大家都知道現(xiàn)在大數(shù)據(jù)生態(tài)非?;穑蠖鄶?shù)技術(shù)組件都是運(yùn)行在 JVM 上的, Flink 也是運(yùn)行在 JVM 上,基于 JVM 的數(shù)據(jù)分析引擎都需要將大量的數(shù)據(jù)存儲(chǔ)在內(nèi)存中,這就不得不面臨 JVM 的一些問題,比如 Java 對(duì)象存儲(chǔ)密度較低等。針對(duì)這些問題,最常用的方法就是實(shí)現(xiàn)一個(gè)顯式的

    2024年02月04日
    瀏覽(23)
  • 【數(shù)據(jù)結(jié)構(gòu)】二叉樹篇|超清晰圖解和詳解:二叉樹的序列化和反序列化

    【數(shù)據(jù)結(jié)構(gòu)】二叉樹篇|超清晰圖解和詳解:二叉樹的序列化和反序列化

    博主簡(jiǎn)介: 努力學(xué)習(xí)的22級(jí)計(jì)算機(jī)科學(xué)與技術(shù)本科生一枚?? 博主主頁(yè): @是瑤瑤子啦 每日一言??: 你不能要求一片海洋,沒有風(fēng)暴,那不是海洋,是泥塘——畢淑敏 ?? 序列化 :本質(zhì)就是 二叉樹的遍歷 ,就那么幾個(gè):前序、中序、后序、層序。而序列化只不過就是 在遍歷到

    2024年02月10日
    瀏覽(20)
  • 安卓數(shù)據(jù)存儲(chǔ)補(bǔ)充:XML序列化

    序列化是將對(duì)象狀態(tài)轉(zhuǎn)換為可保存或傳輸?shù)母袷降倪^程。我們可以把對(duì)象序列化為不同的格式,比如說:JSon序列化、XML序列化、二進(jìn)制序列化等等,不同的形式適應(yīng)不同的業(yè)務(wù)需求。 把對(duì)象的成員變量轉(zhuǎn)化為XML格式,需要使用Xml序列化器(XmlSerializer類),序列化之后的對(duì)象

    2024年02月10日
    瀏覽(24)
  • spark 數(shù)據(jù)序列化和內(nèi)存調(diào)優(yōu)(翻譯)

    由于大多數(shù)Spark計(jì)算的內(nèi)存性質(zhì),Spark程序可能會(huì)被集群中的任何資源瓶頸:CPU、網(wǎng)絡(luò)帶寬或內(nèi)存。大多數(shù)情況下,如果數(shù)據(jù)能放在內(nèi)存,瓶頸是網(wǎng)絡(luò)帶寬,但有時(shí),您還需要進(jìn)行一些調(diào)整,例如以序列化形式存儲(chǔ)RDD,以減少內(nèi)存使用。本指南將涵蓋兩個(gè)主要主題:數(shù)據(jù)序列化

    2024年03月11日
    瀏覽(23)
  • 數(shù)據(jù)序列化工具Protobuf編碼&避坑指南

    數(shù)據(jù)序列化工具Protobuf編碼&避坑指南

    先簡(jiǎn)單介紹一下 Protocol Buffers(protobuf),它是 Google 開發(fā)的一種數(shù)據(jù)序列化協(xié)議(與 XML、JSON 類似)。它具有很多優(yōu)點(diǎn),但也有一些需要注意的缺點(diǎn): 優(yōu)點(diǎn): 效率高 :Protobuf 以二進(jìn)制格式存儲(chǔ)數(shù)據(jù),比如 XML 和 JSON 等文本格式更緊湊,也更快。序列化和反序列化的速度也很

    2024年02月13日
    瀏覽(23)
  • python序列化和結(jié)構(gòu)化數(shù)據(jù)詳解

    序列化和結(jié)構(gòu)化數(shù)據(jù)是計(jì)算機(jī)程序中非常重要的概念,它們的原理和應(yīng)用在許多應(yīng)用程序中都是必不可少的。Python作為一種高級(jí)編程語(yǔ)言,在序列化和結(jié)構(gòu)化數(shù)據(jù)方面提供了很多優(yōu)秀的解決方案。在本文中,我們將詳細(xì)介紹Python中序列化和結(jié)構(gòu)化數(shù)據(jù)的相關(guān)概念和應(yīng)用。 1.

    2024年02月08日
    瀏覽(28)
  • 4.4 C++ Boost 數(shù)據(jù)集序列化庫(kù)

    Boost 庫(kù)是一個(gè)由C/C++語(yǔ)言的開發(fā)者創(chuàng)建并更新維護(hù)的開源類庫(kù),其提供了許多功能強(qiáng)大的程序庫(kù)和工具,用于開發(fā)高質(zhì)量、可移植、高效的C應(yīng)用程序。Boost庫(kù)可以作為標(biāo)準(zhǔn)C庫(kù)的后備,通常被稱為準(zhǔn)標(biāo)準(zhǔn)庫(kù),是C標(biāo)準(zhǔn)化進(jìn)程的重要開發(fā)引擎之一。使用Boost庫(kù)可以加速C應(yīng)用程序的開

    2024年02月12日
    瀏覽(20)
  • web應(yīng)用模式、API接口、接口測(cè)試工具postman、如何在瀏覽器中測(cè)試、restful規(guī)范、序列化反序列化、基于Django原生編寫五個(gè)接口、drf介紹和快速使用、drf之APIView源碼分析

    web應(yīng)用模式、API接口、接口測(cè)試工具postman、如何在瀏覽器中測(cè)試、restful規(guī)范、序列化反序列化、基于Django原生編寫五個(gè)接口、drf介紹和快速使用、drf之APIView源碼分析

    目錄 一、web應(yīng)用模式 二、API接口 三、接口測(cè)試工具postman postman介紹 postman下載與使用 四、如何在瀏覽器中測(cè)試 五、restful規(guī)范(重要) 六、序列化反序列化 七、基于Django原生編寫五個(gè)接口 八、drf介紹和快速使用 概念 特點(diǎn)(了解一下) 安裝 使用drf編寫五個(gè)接口 九、drf之API

    2024年02月05日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包