




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、js序列化_架構(gòu)師必懂的七種序列化機(jī)制及技術(shù)選型序列化、序列化定義(Encode),主要于絡(luò)傳輸、數(shù)據(jù)持久化 等;反序列化(deserialization)則是將從絡(luò)、磁盤等讀取的字節(jié)數(shù)組還原成原始對象,以便后續(xù)業(yè)務(wù)的進(jìn),般也將反序列化稱為解碼(Decode),主要于絡(luò)傳輸對象的解碼,以便完成遠(yuǎn)程調(diào)。、序列化協(xié)議祖”家都懂的第種序列化協(xié)議就是Java默認(rèn)提供的序列化機(jī)制,需要序列化的Java對象只需要實(shí)現(xiàn)Serializable / Externalizable 接并成序列化ID,這個類就能夠通過 ObjectInput 和 ObjectOutput 序列化和反序列化,若對Java默認(rèn)的序列化
2、協(xié)議不了解,或是遺忘了,請參考:序列化詳解。但是Java默認(rèn)提供的序列化有很多問題,主要有以下個缺點(diǎn):Java序列化后的字節(jié)數(shù)組,其它語法進(jìn)反序列化。 序列化后的碼流太::相對于前主流的序列化協(xié)議,Java序列化后的碼流太;序列化的性能差:由于Java序列化采同步阻塞IO,相對于前主流的序列化協(xié)議,它的效率常差。序列化機(jī)制三、影響序列化性能的關(guān)鍵因素序列化后的碼流(絡(luò)帶寬的占); 序列化的性能(CPU資源占);是否持跨語(異構(gòu)系統(tǒng)的對接和開發(fā)語切換)。四、種流的序列化協(xié)議較第種: XML(1)定義:XML(ExtensibleMarkupLanguage)1998年的1.0版本被泛使今。(2)
3、優(yōu)點(diǎn)序列化數(shù)據(jù)只包含數(shù)據(jù)本以及類的結(jié)構(gòu),不包括類型標(biāo)識和程序集信息。類必須有個將由 XmlSerializer 序列化的默認(rèn)構(gòu)造函數(shù)。只能序列化公共屬性和字段不能序列化法件龐,件格式復(fù)雜,傳輸占帶寬(4)使場景當(dāng)做配置件存儲數(shù)據(jù)、實(shí)時數(shù)據(jù)轉(zhuǎn)換序列化、反序列化過程第種: JSON(1)定義:JSON(JavaScript Object Notation, JS 對象標(biāo)記) 是種輕量級的數(shù)據(jù)交換格式。它基于ECMAScript (w3c制定的js規(guī)范)的個集, JSON采與編程語關(guān)的本格式,但是也使了類C語(包括C, C+, C#, Java, JavaScript, Perl, Python等)
4、的習(xí)慣,簡潔和清晰的層次結(jié)構(gòu)使得 JSON 成為理想的數(shù)據(jù)交換語。(2)優(yōu)點(diǎn)前后兼容性數(shù)據(jù)格式較簡單,易于讀寫序列化后數(shù)據(jù)較,可擴(kuò)展性好,兼容性好與XML相,其協(xié)議較簡單,解析速度較快(3)缺點(diǎn)數(shù)據(jù)的描述性XML差不適合性能要求為ms級別的情況額外空間開銷較(4)適場景(可替代) 跨防墻訪問可調(diào)式性要求的情況基于Web browser的Ajax請求傳輸數(shù)據(jù)量相對,實(shí)時性要求相對低(例如秒級別)的服務(wù)第三種: Fastjson(1)定義Fastjson是個Java語編寫的性能功能完善的JSON庫。它采種“假定有序快速匹配”的算法,把JSON Parse的性能提升到極致。(2)優(yōu)點(diǎn)接簡單易前jav
5、a語中最快的json庫(3)缺點(diǎn)過于注重快,偏離了“標(biāo)準(zhǔn)”及功能性代碼質(zhì)量不,檔不全(4)適場景協(xié)議交互Web輸出Android客戶端第四種: Thrift(1)定義:Thrift并不僅僅是序列化協(xié)議,是個RPC框架。它可以讓你選擇客戶端與服務(wù)端之間傳輸通信協(xié)議的類別,即本(text)和進(jìn)制(binary)傳輸協(xié)議, 為節(jié)約帶寬,提供傳輸效率,般情況下使進(jìn)制類型的傳輸協(xié)議。(2)優(yōu)點(diǎn)序列化后的體積, 速度快持多種語和豐富的數(shù)據(jù)類型對于數(shù)據(jù)字段的增刪具有較強(qiáng)的兼容性持進(jìn)制壓縮編碼(3)缺點(diǎn)使者較少跨防墻訪問時,不安全不具有可讀性,調(diào)試代碼時相對困難不能與其他傳輸層協(xié)議共同使(例如HTTP)法持向
6、持久層直接讀寫數(shù)據(jù),即不適合做數(shù)據(jù)持久化序列化協(xié)議(4)適場景分布式系統(tǒng)的RPC解決案第五種: Avro(1)定義:Avro屬于Apache Hadoop的個項(xiàng)。 Avro提供兩種序列化格式:JSON格式或者Binary格式。Binary格式在空間開銷和解析性能可以和Protobuf媲美,Avro的產(chǎn)解決了JSON的冗長和沒有IDL的問題(2)優(yōu)點(diǎn)持豐富的數(shù)據(jù)類型簡單的動態(tài)語結(jié)合功能具有我描述屬性提了數(shù)據(jù)解析速度快速可壓縮的進(jìn)制數(shù)據(jù)形式可以實(shí)現(xiàn)遠(yuǎn)程過程調(diào)RPC持跨編程語實(shí)現(xiàn)(3)缺點(diǎn)對于習(xí)慣于靜態(tài)類型語的戶不直觀(4)適場景在Hadoop中做Hive、Pig和MapReduce的持久化數(shù)據(jù)格式
7、第七種: Protobuf(1)定義protocol buffers 由歌開源來,在歌內(nèi)部久經(jīng)考驗(yàn)。它將數(shù)據(jù)結(jié)構(gòu)以.proto件進(jìn)描述,通過代碼成具可以成對應(yīng)數(shù)據(jù)結(jié)構(gòu)的POJO對象和Protobuf相關(guān)的法和屬性。(2)優(yōu)點(diǎn)序列化后碼流,性能結(jié)構(gòu)化數(shù)據(jù)存儲格式(XML JSON等)通過標(biāo)識字段的順序,可以實(shí)現(xiàn)協(xié)議的前向兼容結(jié)構(gòu)化的檔更容易管理和維護(hù)(3)缺點(diǎn)需要依賴于具成代碼持的語相對較少,官只持Java 、C+ 、Python (4)適場景開源的物聯(lián)平臺使較多,如Thingsboard。其它protostuff 基于protobuf協(xié)議,但不需要配置proto件,直接導(dǎo)包即Jboss mar
8、shaling 可以直接序列化java類, 須實(shí)java.io.Serializable接Message pack 個效的進(jìn)制序列化格式Hessian 采進(jìn)制協(xié)議的輕量級remoting onhttp具kryo 基于protobuf協(xié)議,只持java語,需要注冊(Registration),然后序列化(Output),反序列化(Input)五、性能對圖解分析上圖知:XML序列化(Xstream)論在性能和簡潔性上較差。Thrift與Protobuf相在時空開銷都有定的劣勢。Protobuf和Avro在兩表現(xiàn)都常優(yōu)越。六、選型建議不同的場景適的序列化協(xié)議:對于公司間的系統(tǒng)調(diào),如果性能要求在100ms以上的服務(wù),基于XML的SOAP協(xié)議是個值得考慮的案?;赪eb browser的Ajax,以及Mobile app與服務(wù)端之間的通訊,JSON協(xié)議是選。對于性能要求不太,或者以動態(tài)類型語為主,或者傳輸數(shù)據(jù)載荷很的的運(yùn)場景,JSON也是常不錯的選擇?;騒ML能夠極的提調(diào)試效率,降低系統(tǒng)開發(fā)成本。 當(dāng)對性能和簡潔性有極要求的場景,Protobuf,Thrift,Avro之間具有定的競爭關(guān)系。Hadoop項(xiàng),Avro會是更好的 選擇。由于Avro的設(shè)計理念
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025山東聊城市高唐縣興城建設(shè)發(fā)展有限公司招聘1人筆試歷年參考題庫附帶答案詳解
- 2025浙江溫州樂清市城投集團(tuán)交水集團(tuán)國運(yùn)集團(tuán)招聘44人筆試歷年參考題庫附帶答案詳解
- 行政管理考試題及答案
- 醫(yī)保政策解讀課件
- 小學(xué)班會法治教育課件
- 健康養(yǎng)生課件內(nèi)容概覽
- 2024年甘肅省天祝藏族自治縣人民醫(yī)院公開招聘護(hù)理工作人員試題帶答案詳解
- 2024年中國鎳氫動力電池行業(yè)調(diào)查報告
- 中國電熱磁化開水瓶項(xiàng)目投資可行性研究報告
- 2025年中國VC產(chǎn)業(yè)深度調(diào)研與發(fā)展趨勢研究報告
- 招商大使選聘管理辦法
- 智慧教育基于大數(shù)據(jù)的個性化教學(xué)研究與實(shí)踐
- 2025年中國鐵路集團(tuán)招聘筆試備考題庫(帶答案詳解)
- 用工風(fēng)險培訓(xùn)課件
- 海外現(xiàn)場安全健康環(huán)境管理(HSE)
- 班主任與科任老師的協(xié)調(diào)教育
- DLT 5035-2016 發(fā)電廠供暖通風(fēng)與空氣調(diào)節(jié)設(shè)計規(guī)范
- DZ∕T 0201-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 鎢、錫、汞、銻(正式版)
- 小小科學(xué)家《物理》模擬試卷A(附答案)
- 《風(fēng)電場項(xiàng)目經(jīng)濟(jì)評價規(guī)范》(NB-T 31085-2016)
- 旋轉(zhuǎn)型灌裝機(jī)設(shè)計說明書
評論
0/150
提交評論