成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JSON, Protobuf, Thrift和MessagePack的優缺點對比

開發
最近咱們公司內部搞了個技術交流,討論起了序列化協議怎么選。我覺得這話題挺有意思的,就順手整理了一下現在主流的序列化協議的優缺點。這樣一來,以后查起來也方便。

最近咱們公司內部搞了個技術交流,討論起了序列化協議怎么選。我覺得這話題挺有意思的,就順手整理了一下現在主流的序列化協議的優缺點。這樣一來,以后查起來也方便。

JSON

先說說 JSON,這貨讀起來挺舒服,用起來也簡單。擴展性和兼容性都不錯,能在不同語言之間傳來傳去結構化數據。

但 JSON 也有缺點,比如體積大,影響性能,尤其是高并發的時候。還有就是缺乏命名空間,有時候信息會亂成一團。

總結起來,JSON 是個簡單通用的應用協議,用得挺廣,開發效率挺高,但性能一般,維護成本也偏高。

Protobuf

接下來是 Protobuf,這貨是個高性能、易擴展的序列化框架。

優點很明顯,跨語言,向后兼容,新增字段不影響已有的協議。代碼自動生成,用起來簡單。二進制消息,效率高,性能好。而且安全性也不錯,只寫字段號,編碼成二進制,破解難度大。

缺點嘛,二進制消息可讀性差,字段冗余,類文件會越來越大,維護成本高。而且 Protobuf 只管序列化和反序列化,RPC 功能得另請高明。

RPC 是啥?就是遠程過程調用,一個機器(客戶端)調用另一個機器(服務器)上的函數或方法,然后拿到結果。RPC 會隱藏底層通信細節,不用你直接處理 Socket 或 Http 通信,用起來就像調用本地函數一樣。

總結 Protobuf,上手簡單,高效,兼容性強,但維護成本也高。

Thrift

Thrift 是 Facebook 2007年開發的跨語言 RPC 框架,支持多語言編譯,提供多種服務器工作模式。

優點是序列化和 RPC 一站式解決,比 Protobuf 方便。跨語言,IDL 接口定義語言,自動生成多語言文件。省流量,體積小。包含完整的客戶端/服務端堆棧,RPC 實現起來快。服務端有多種工作模式,比如線程池、非阻塞模型。

缺點是不支持雙通道,RPC 方法非線程安全,服務器容易被掛死,需要串行化。默認不具備動態特性,開發環境和編譯有點麻煩。

總結 Thrift,跨語言,實現簡單,但初次使用有點麻煩,得注意使用問題和場景限制。

MessagePack

MessagePack 是一種高效的二進制序列化格式。

優點是跨語言,多語言支持。序列化反序列化效率高,文件體積小,比 JSON 小一倍,還兼容 JSON 數據格式。

缺點是缺乏復雜模型支持,對復雜數據類型(List、Map)支持不夠。序列化沒問題,但反序列化回來就麻煩了,尤其是對 Java 開發人員來說。維護成本也高,因為 MessagePack 通過值的順序來定位屬性,不同語言中都得維護一樣的模型和屬性順序。還不支持模型嵌套。

總結 MessagePack,性能高,但擴展性差,維護成本高。

哦,對了,在整理的時候我還有點疑問。有人說 MessagePack 的序列化和反序列化效率是 Protobuf 的 4 倍,我個人表示懷疑。后續的文章可能會對這兩個協議做個細致的對比。

好了,今天的分享就到這兒,希望對你有幫助。有啥問題咱們再討論!

責任編輯:華軒 來源: 科學隨想錄
相關推薦

2016-09-08 14:50:59

AndroidiPhoneiOS

2024-01-04 08:00:22

時序數據庫項目

2013-05-07 10:09:07

2016-08-10 08:14:13

虛擬主機海外主機

2010-06-01 19:33:53

SVN與CVS優缺點

2011-08-19 09:21:42

2019-10-31 11:16:57

Web框架Angular

2021-09-13 10:27:34

云備份云恢復云計算

2017-11-17 10:46:13

NginxApache服務器

2019-02-26 15:23:01

數據安全磁盤

2013-03-19 12:51:59

VDI網絡虛擬化虛擬化技術

2010-06-19 14:19:18

RIP路由協議

2024-08-27 08:29:49

2019-01-24 13:40:58

機器學習深度學習人工智能

2013-06-26 10:25:39

2021-10-09 09:52:17

云存儲公共云遷移

2010-05-19 16:15:05

SVN與CVS

2021-09-08 09:00:00

DevOps開發IT

2009-09-04 08:33:25

VirtualBox虛

2023-07-06 16:08:52

物聯網人工智能
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品一区二区av | 午夜精品久久 | 亚洲综合色站 | yiren22综合网成人 | 欧美一级二级视频 | 成人免费视频网站在线看 | 韩国毛片一区二区三区 | 成人一区二区三区在线观看 | 888久久久 | 91在线视频免费观看 | 91影片| 福利一区二区在线 | 精品视频一区二区 | 色婷婷精品久久二区二区蜜臂av | 国产视频久久久 | 亚洲精品久久久久久久久久久 | 亚洲天堂一区二区 | 国产免费拔擦拔擦8x高清 | 日韩中文字幕av | 亚洲天堂中文字幕 | 91极品视频 | 亚洲免费成人 | 国产极品粉嫩美女呻吟在线看人 | 一区二区三区精品视频 | 欧美精品在欧美一区二区少妇 | 国产一区二区三区四区五区3d | 午夜影院在线免费观看视频 | 国产精品色一区二区三区 | 亚洲成人精品国产 | 在线观看视频亚洲 | 国产清纯白嫩初高生视频在线观看 | 国产精品久久久久久吹潮 | 久久伊人一区 | 国产成人精品一区二区三区网站观看 | 亚洲不卡av在线 | 亚洲免费人成在线视频观看 | 国产成人免费视频网站视频社区 | 精品一区二区三区四区 | 国产精品久久久久无码av | 亚洲精品一区二区三区四区高清 | 成人精品国产免费网站 |