gRPC是一款高性能開源RPC框架,軟件基于 HTTP/2 標準設計,帶來諸如雙向流、流控、頭部壓縮、單 TCP 連接上的多復用請求等特。可以通過可插拔的支持來有效地連接數據中心內和跨數據中心的服務,以實現負載平衡,跟蹤,運行狀況檢查和身份驗證。KK下載站為您提供gRPC 官方最新版下載,有需要的朋友可以下載使用哦!

gRPC使用說明
開始使用gRPC
為了最大化可用性,gRPC支持將依賴項添加到用戶選擇的語言(如果有)的標準方法。在大多數語言中,gRPC運行時是作為軟件包提供的,可以在用戶的??語言包管理器中找到。
有關如何在項目中使用特定于語言的gRPC運行時的說明,請參閱以下文檔
C++: follow the instructions under the src/cpp directory
C#: NuGet package Grpc
Dart: pub package grpc
Go: go get google.golang.org/grpc
Java: Use JARs from Maven Central Repository
Kotlin: Use JARs from Maven Central Repository
Node: npm install grpc
Objective-C: Add gRPC-ProtoRPC dependency to po dspec
PHP: pecl install grpc
Python: pip install grpcio
Ruby: gem install grpc
WebJS: follow the grpc-web instructions
使用協議緩沖區
默認情況下,gRPC使用 協議緩沖區,這是Google成熟的用于序列化結構化數據的開源機制(盡管它可以與其他數據格式(例如JSON)一起使用)。這里是它的工作原理的快速介紹。如果您已經熟悉協議緩沖區,請隨時跳到下一部分。
使用協議緩沖區的第一步是為要在原始文件中序列化的數據定義結構:這是帶有.proto擴展名的普通文本文件。協議緩沖區數據被構造為 消息,其中每個消息都是信息的小邏輯記錄,其中包含一系列稱為字段的名稱/值對。這是一個簡單的例子:
message Person {
string name = 1;
int32 id = 2;
bool has_ponycopter = 3;
}
然后,一旦指定了數據結構,就可以使用協議緩沖區編譯器protoc從原型定義中以首選語言生成數據訪問類。這些為每個字段(例如name()和)提供了簡單的訪問器set_name(),以及將整個結構序列化為原始字節或從原始字節中解析出整個結構的方法。因此,例如,如果您選擇的語言是C ++,則在上面的示例中運行編譯器將生成一個名為的類Person。然后,您可以在應用程序中使用此類來填充,序列化和檢索Person協議緩沖區消息。
您可以在普通的原始文件中定義gRPC服務,并使用RPC方法參數和返回類型指定為協議緩沖區消息:
// The greeter service definition.
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
// The request message containing the user's name.
message HelloRequest {
string name = 1;
}
// The response message containing the greetings
message HelloReply {
string message = 1;
}
gRPC protoc與特殊的gRPC插件一起使用,可從您的原型文件生成代碼:您將生成生成的gRPC客戶端和服務器代碼,以及用于填充,序列化和檢索消息類型的常規協議緩沖區代碼。
gRPC功能介紹
簡單的服務定義
使用協議緩沖區,功能強大的二進制序列化工具集和語言來定義服務
快速啟動并擴展
只需一行即可安裝運行時和開發環境,并使用該框架每秒可擴展至數百萬個RPC
跨語言和平臺工作
自動以多種語言和平臺為您的服務生成慣用的客戶端和服務器存根
雙向流和集成身份驗證
雙向流和完全集成的可插入身份驗證以及基于HTTP/2的傳輸
gRPC是可以在任何環境中運行的現代開源高性能RPC框架。它可以通過可插拔的支持來有效地連接數據中心內和跨數據中心的服務,以實現負載平衡,跟蹤,運行狀況檢查和身份驗證。它也適用于分布式計算的最后一英里,以將設備,移動應用程序和瀏覽器連接到后端服務。
gRPC軟件特色
gRPC可以通過protobuf來定義接口,從而可以有更加嚴格的接口約束條件。關于protobuf可以參見筆者之前的小文Google Protobuf簡明教程
另外,通過protobuf可以將數據序列化為二進制編碼,這會大幅減少需要傳輸的數據量,從而大幅提高性能。
gRPC可以方便地支持流式通信(理論上通過http2.0就可以使用streaming模式, 但是通常web服務的restful api似乎很少這么用,通常的流式數據應用如視頻流,一般都會使用專門的協議如HLS,RTMP等,這些就不是我們通常web服務了,而是有專門的服務器應用。)