/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
gRPC是可以在任何環境中運行的現代開源高性能RPC框架,它可以通過可插拔的支持來有效地連接數據中心內和跨數據中心的服務,以實現負載平衡,跟蹤,運行狀況檢查和身份驗證,它也適用於分布式計算的最後一英裏,以將設備,移動應用程序和瀏覽器連接到後端服務。
開始使用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客戶端和服務器代碼,以及用於填充,序列化和檢索消息類型的常規協議緩衝區代碼。
簡單的服務定義
使用協議緩衝區,功能強大的二進製序列化工具集和語言來定義服務
快速啟動並擴展
隻需一行即可安裝運行時和開發環境,並使用該框架每秒可擴展至數百萬個RPC
跨語言和平台工作
自動以多種語言和平台為您的服務生成慣用的客戶端和服務器存根
雙向流和集成身份驗證
雙向流和完全集成的可插入身份驗證以及基於HTTP/2的傳輸
gRPC是可以在任何環境中運行的現代開源高性能RPC框架。它可以通過可插拔的支持來有效地連接數據中心內和跨數據中心的服務,以實現負載平衡,跟蹤,運行狀況檢查和身份驗證。它也適用於分布式計算的最後一英裏,以將設備,移動應用程序和瀏覽器連接到後端服務。