經常使用的跨語言通訊方案:css
以上兩種方案的弊端:html
如今比較流行的跨語言通訊方案:前端
thrift :是由 Facebook 主導開發的一個跨平臺、支持多語言的,經過定義 IDL 文件,自動生成 RPC 客戶端與服務端通訊代碼的工具,以構建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 這些編程語言間無縫結合的、高效的服務。Thrift經過一箇中間語言(IDL, 接口定義語言)來定義RPC的接口和數據類型,而後經過一個編譯器生成不一樣語言的代碼並由生成的代碼負責RPC協議層和傳輸層的實現。git
Thrift是 由Facebook開源的一個RPC框架,用來進行可擴展且跨語言的服務的開發,使得各類編程語言間無縫結合的、高效的服務。咱們依據Thrift的規範 簡單定義訪問接口,經過Thrift編譯器編譯生成各類編程語言代碼,實現各類語言模塊之間的高效互訪問,速度比Google的Protocol Buffers還要快。Thrift能夠說它是如今最優秀的分佈式通訊機制,實現了在大型分佈式集羣中各獨立模塊之間的高效協同github
protocol buffer 是一種序列化與結構化數據的一種機制,具備跨平臺、解析速度快、序列化數據體積小、擴展性高、使用簡單的特色。web
Apache Avro 是一個二進制的數據序列化系統。實際上 Avro 除了序列化以外,像 MP 同樣也提供了遠程調用( RPC )功能。 Avro 是屬於 Hadoop 的一個子項目,由 Hadoop 的 創始人 Doug Cutting 牽頭開發,設計用於支持大批量數據交換的應用,依賴模式 (Schema) 來實現數據結構定義,模式由 JSON 對象來表示, Avro 也被做爲一種 RPC 框架來使用。客戶端但願同服務器端交互時,就須要交換雙方通訊的協議,它相似於模式,須要雙方來定義,在 Avro 中被稱爲消息 (Message) 。通訊雙方都必須保持這種協議,以便於解析從對方發送過來的數據,這也就是傳說中的握手階段。apache
性能對比 因爲thrift功能較protobuf豐富手機html製做,所以單從序列化機制上進行性能比較,手機html製做按照序列化後字節數、序列化時間、反序列化時間三個指標進行手機html製做,對thrift的二進制、壓縮、protobuf三種格式進行對比發現:Protobuf序列化後的字節數較少,符合w3c標準並且序列化和反序列化的時間也較短.編程
protocol buffer 是一種序列化與結構化數據的一種機制wap前端外包,具備跨平臺、解析速度快、序列化數據體積小、擴展性高、使用簡單的特色.服務器
protobuf thrift 功能特性 主要是一種序列化機制 提供了全套RPC解決方案,wap前端外包包括序列化機制、傳輸層、併發處理框架等 支持語言 C++/Java/Python C++手機前端外包, Java,div+css外包 Python兼職手機網頁製做, Ruby,html製做外包 Perl手機html製做, PHP,手機html製做 C#手機html製做, Erlang,手機html製做 Haskell 易用性 語法相似wap前端外包,使用方式等相似 生成代碼的質量 可讀性都還過得去,網頁外包接活執行效率另測 升級時版本兼容性 均支持向後兼容和向前兼容 學習成本 功能單一(不適合複雜應用)手機前端外包,容易學習 功能豐富、學習成本高 文檔&社區 官方文檔較爲豐富,div+css外包google搜索protocol buffer有2000W+結果兼職手機網頁製做,google group被牆不能訪問 官方文檔較少,兼職手機網頁製做沒有API文檔手機html製做,google搜索apache thrift僅40W結果,web前端報價郵件列表不怎麼活躍數據結構
Apache Avro 是一個二進制的數據序列化系統.實際上 Avro 除了序列化以外手機html製做,像 MP 同樣也提供了遠程調用( RPC )功能. Avro 是屬於 Hadoop 的一個子項目,手機html製做由 Hadoop 的 創始人 Doug Cutting 牽頭開發wap前端外包,設計用於支持大批量數據交換的應用,wap前端外包依賴模式 (Schema) 來實現數據結構定義手機前端外包,模式由 JSON 對象來表示,web前端外包 Avro 也被做爲一種 RPC 框架來使用.客戶端但願同服務器端交互時兼職手機網頁製做,就須要交換雙方通訊的協議,兼職手機網頁製做它相似於模式手機html製做,須要雙方來定義,手機html製做在 Avro 中被稱爲消息 (Message) .通訊雙方都必須保持這種協議手機html製做,以便於解析從對方發送過來的數據,符合w3c標準這也就是傳說中的握手階段.
對比三種框架首推的應該是thriftwap前端外包,由於其不只有對於協議封裝和解析的處理,wap前端外包並且有完備的通信框架的實現手機前端外包,徹底封裝了底層通信,div+css外包對於使用者兼職手機網頁製做,只要在框架的客戶端和服務器接口回調中,html製做外包處理邏輯就能夠了.