日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

三种通用应用层协议protobuf、thrift、avro对比

發布時間:2024/1/17 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三种通用应用层协议protobuf、thrift、avro对比 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Google protobuf:
優點

????二進制消息,性能好/效率高(空間和時間效率都很不錯)
????proto文件生成目標代碼,簡單易用
????序列化反序列化直接對應程序中的數據類,不需要解析后在進行映射(XML,JSON都是這種方式)
????支持向前兼容(新加字段采用默認值)和向后兼容(忽略新加字段),簡化升級
????支持多種語言(可以把proto文件看做IDL文件)
????Netty等一些框架集成

缺點

????官方只支持C++,JAVA和Python語言綁定
????二進制可讀性差(貌似提供了Text_Fromat功能)
????二進制不具有自描述特性
????默認不具備動態特性(可以通過動態定義生成消息類型或者動態編譯支持)
????只涉及序列化和反序列化技術,不涉及RPC功能(類似XML或者JSON的解析器)

Apache Thrift:
應用

????Facebook的開源的日志收集系統(scribe: https://github.com/facebook/scribe)
????淘寶的實時數據傳輸平臺(TimeTunnel http://code.taobao.org/p/TimeTunnel/wiki/index)
????Evernote開放接口(https://github.com/evernote/evernote-thrift)
????Quora(http://www.quora.com/Apache-Thrift)
????HBase( http://abloz.com/hbase/book.html#thrift )
????…

優點

????支持非常多的語言綁定
????thrift文件生成目標代碼,簡單易用
????消息定義文件支持注釋
????數據結構與傳輸表現的分離,支持多種消息格式
????包含完整的客戶端/服務端堆棧,可快速實現RPC
????支持同步和異步通信

缺點

????和protobuf一樣不支持動態特性

Apache Avro:
應用

????Hadoop RPC (http://hadoop.apache.org/#What+Is+Apache+Hadoop%3F)

優點

????二進制消息,性能好/效率高
????使用JSON描述模式
????模式和數據統一存儲,消息自描述,不需要生成stub代碼(支持生成IDL)
????RPC調用在握手階段交換模式定義
????包含完整的客戶端/服務端堆棧,可快速實現RPC
????支持同步和異步通信
????支持動態消息
????模式定義允許定義數據的排序(序列化時會遵循這個順序)
????提供了基于Jetty內核的服務基于Netty的服務

缺點

????只支持Avro自己的序列化格式
????語言綁定不如Thrift豐富

總結

以上是生活随笔為你收集整理的三种通用应用层协议protobuf、thrift、avro对比的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。