欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
RPC, Serialization and Schema

RPC, Serialization and Schema

The post is brought to you by lekhonee v0.7

糖果項目的后端用Java編寫(xiě),我負責service gateway的開(kāi)發(fā)(暫且叫sergent),服務(wù)以Java接口+Annotation的形式聲明,與Spring集成使用,Java對象被序列化為JSON和XML(通過(guò)jackson和castor)與外部系統交互。專(zhuān)門(mén)的JSON Schema和XML Schema是可選的,系統交互通過(guò)簡(jiǎn)明的文檔和人工確認。

RPC框架是跨進(jìn)程、跨系統交互的重要工具,RPC框架中又包括遠程調用、網(wǎng)絡(luò )傳輸和序列化反序列化等等部分。流行的工具包括Facebook的thrift,Google的Protobuf和原先Hadoop項目下的avro。其中thrift包含遠程調用、反序列化、網(wǎng)絡(luò )等等全部的功能。Protobuf本身是一個(gè)序列化反序列化庫,另有很多第三方RPC實(shí)現,avro目前除了序列化和反序列化的功能,也包含了ipc的HTTP Server和SocketServer等實(shí)現。在序列化的格式方面,Thrift支持JSON和二進(jìn)制協(xié)議,Protobuf本身僅有二進(jìn)制支持,但已經(jīng)存在第三方的其他格式實(shí)現。 avro原生支持二進(jìn)制和JSON格式。

從效率上來(lái)說(shuō),二進(jìn)制方式的序列化要比文本方式的快。Google Code上(最近遷往了github)有一個(gè)tpc項目thrift-protobuf-compare),根據這個(gè)項目的最新的比較結果(與原先不同):

protobuf成為了三者中耗時(shí)最少的框架,之后是thrift和avro,這次avro的耗時(shí)甚至超過(guò)了文本方式的jackson(主要在反序列化上)。

但是二進(jìn)制協(xié)議通常都需要定義Schema,thrift / protobuf / avro三者各自定義了Schema的格式,沒(méi)有類(lèi)似XSD和JsonSchema的統一標準,也就是說(shuō),當你需要傳輸一個(gè)對象,就要為它編寫(xiě)一個(gè)Schema文件。按照通常的習慣,都是先編寫(xiě)Schema,然后通過(guò)命令行工具或者自動(dòng)構建工具來(lái)生成Java source。對于新系統還好說(shuō),對舊系統這個(gè)改造就比較麻煩了。另外,二進(jìn)制協(xié)議不便于調試,所以各個(gè)thrift/protobuf/avro先后也都有JSON的實(shí)現,在文本的序列化格式上,JSON對XML的優(yōu)勢是全方位的。

所以綜合起來(lái),很難說(shuō)有一種完美的解決方案。二進(jìn)制協(xié)議的效率高,但是改造、編寫(xiě)Schema的代價(jià)并不小,還要面對核心Model被綁架到具體框架的風(fēng)險。文本協(xié)議開(kāi)發(fā)簡(jiǎn)便,不需要Schema,直接POJO就可以序列化和反序列化,但是在時(shí)間和空間上都不如二進(jìn)制的方式。

補充
從tpc項目的結果上看,kryo在時(shí)間、空間上都擊敗了所有對手,而且,kryo的API非常簡(jiǎn)潔,不需要Schema文件就可以序列化POJO,聽(tīng)起來(lái)太完美了,看來(lái)以后sergent要借鑒一下的。

This content is published under the Attribution-Noncommercial-Share Alike 3.0 Unported license.

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
RPC框架比較
序列化和反序列化
序列化與反序列化
APP為什么用JSON協(xié)議與服務(wù)端交互:序列化相關(guān)知識
(轉)Apache Avro 與 Thrift 比較
既然有了HTTP,為什么還需要RPC?一半以上的面試者回答不上來(lái)...
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久