Google 新實現的Protobuf RPC: grpc
Google 剛剛開源了grpc, 一個基于HTTP2 和 Protobuf 的RPC 實現。
Protobuf 本身雖然提供了RPC 的定義語法,但是一直以來,Google 只開源了Protobuf 序列化反序列化的代碼,而沒有開源RPC 的實現,于是存在著眾多良莠不齊的第三方RPC 實現。
從實現和特性看來,grpc 更多的是考慮移動場景情況下客戶端和服務端的通信,正如其自稱的「general RPC framework that puts mobile and HTTP/2 first」。HTTP2 本身提供了連接多路復用、Body 和 Header 壓縮等機制,grpc 基于此可以提供比較高效的實現。
grpc 所使用的依賴都比較新,如protbuf 需要3.0 版本, c++ 使用了c++11, Java 實現中的netty 需要5.0 版本, HTTP2 也是剛剛定稿。這些依賴中很多都還是沒有正式release ,所以目前來看grpc 還不是一個可穩定使用的狀態。
grpc 提供了c 、Java、golang的原生實現,并以c 共享庫的方式來支持Node.js, Python, Ruby, Objective-C, PHP 和 C# 語言 (由此看來,c++, Java 和golang 在Google 有著一等公民的地位)。其中Java 語言的實現亦可以用于Android 客戶端,Objective-C 的實現主要針對IOS 客戶端。
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!