Google高性能RPC框架gRPC 1.0.0发布
鑒于gRPC已進入穩(wěn)定版分支,并對應(yīng)用于生產(chǎn)中準(zhǔn)備就緒,Google發(fā)布了gRPC 1.0。
gRPC源于被稱為Stubby的Google內(nèi)部項目,早期是用于一些Google內(nèi)部服務(wù)間的通信。18個月前Google開源了gRPC框架,希望借此gRPC能被更廣泛地采納,并在調(diào)用Google所提供的服務(wù)時、通過互聯(lián)網(wǎng)與其它服務(wù)通信時或在自身產(chǎn)品內(nèi)部應(yīng)用gRPC。
gRPC是與平臺無關(guān)的RPC系統(tǒng),它使用Protocol Buffers(ProtoBuf) IDL定義終端服務(wù)和所傳輸?shù)南⒇撦d,進而可為多種語言生成存根進程(stub)。當(dāng)前在Linux、Mac和Windows平臺上,gRPC支持多達十種語言,分別是:C、C++、?C#、?Go、Java?(包括Java/Android)、?Node.js、Objective-C、?PHP、?Python和?Ruby。gRPC原生地使用C、Go和Java語言編程實現(xiàn),通過包裝C函數(shù)庫提供給其它語言使用。為了顯示各種gRPC實現(xiàn)的通信延遲情況對比,Google給出了在同一數(shù)據(jù)中心中不同虛擬機實例間的通信性能精要報告。對于單一的同步安全消息,報告顯示作為基準(zhǔn)的Netperf的延遲大約為100微秒,而C++、Java和C#語言實現(xiàn)的延遲大約在200到300微秒,Ruby、Python和Node.js語言實現(xiàn)的延遲分別在700微秒、900微秒和1,100微秒左右。
gRPC將需傳輸?shù)南⑹褂肞rotocol Buffers 3.0序列化為二進制格式。相對于文本格式而言,ProtoBuf方式可提供更優(yōu)的性能。據(jù)Google工程師Kelsey Hightower介紹,ProtoBuf編碼的消息比JSON格式消息的大小降低了一半,而序列化和反序列化所用的時間僅為后者的三分之一。
與單一RPC中一個請求緊跟著一個響應(yīng)的方式不同,gPRC使用HTTP/2提供客戶和服務(wù)器間的單向或雙向流。gRPC支持同步通信和異步通信,及SSL/TLS和OAuth2(使用Google API)方式的認證。
gRPC支持以CocoaPods、gem、Gradle、Maven、npm、NuGet、pecl、pip或Docker鏡像等方式提供二進制文件,這簡化了安裝過程。
據(jù)Google宣稱,Cisco、CoreOS、Juniper、Netflix和Square等企業(yè)內(nèi)部正在使用gRPC。
相關(guān)文章:?
谷歌發(fā)布的首款基于HTTP/2和protobuf的RPC框架:GRPC
C#中使用gRPC
Google高性能RPC框架gRPC 1.0.0發(fā)布
原文地址:http://www.infoq.com/cn/news/2016/08/grpc-1-0
.NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關(guān)注
總結(jié)
以上是生活随笔為你收集整理的Google高性能RPC框架gRPC 1.0.0发布的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .Net Aop(静态织入)框架 BSF
- 下一篇: Google 的开源方法论