Google 新實現的Protobuf RPC: grpc

轉自:java

http://www.dongliu.net/post/622450c++

 

Google 剛剛開源了grpc,  一個基於HTTP2 和 Protobuf 的RPC 實現。git

Protobuf 自己雖然提供了RPC  的定義語法,可是一直以來,Google 只開源了Protobuf 序列化反序列化的代碼,而沒有開源RPC 的實現,因而存在着衆多參差不齊的第三方RPC 實現。github

從實現和特性看來,grpc 更多的是考慮移動場景狀況下客戶端和服務端的通訊,正如其自稱的「general RPC framework that puts mobile and HTTP/2 first」。HTTP2 自己提供了鏈接多路複用、Body 和 Header 壓縮等機制,grpc 基於此能夠提供比較高效的實現。golang

grpc 所使用的依賴都比較新,如protbuf 須要3.0 版本, c++ 使用了c++11, Java 實現中的netty 須要5.0  版本, HTTP2 也是剛剛定稿。這些依賴中不少都仍是沒有正式release ,因此目前來看grpc 還不是一個可穩定使用的狀態。post

grpc 提供了c 、Javagolang 的原生實現,並以c 共享庫的方式來支持Node.js, Python, Ruby, Objective-C, PHP 和 C# 語言 (由此看來,c++, Java 和golang 在Google 有着一等公民的地位)。其中Java 語言的實現亦能夠用於Android 客戶端,Objective-C 的實現主要針對IOS 客戶端。.net

相關文章
相關標籤/搜索