grpc不是只支持go語言。grpc是通信協議基于HTTP/2,支持多語言的RPC框架;目前提供C、Java和Go語言版本,分別是grpc、grpc-java、grpc-go;其中C版本支持C、C++、Node.js、Python、Ruby、Objective-C、PHP和C#支持。
php入門到就業線上直播課:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調試工具:點擊使用
本教程操作環境:windows7系統、GO 1.18版本、Dell G3電腦。
什么是grpc
gRPC 是通信協議基于 HTTP/2,支持多語言的 RPC 框架,面向移動和 HTTP/2 設計。gRPC 基于 HTTP/2 標準設計,帶來諸如雙向流、流控、頭部壓縮、單 TCP 連接上的多復用請求等特。這些特性使得其在移動設備上表現更好,更省電和節省空間占用。
RPC:Remote Procedure Call 的縮寫,譯為遠程過程調用(也可譯為遠程方法調用或遠程調用),它是計算機通信協議。該協議可以實現調用遠程服務就像調用本地服務一樣簡單,無需關心跨網絡,跨平臺,跨語言等問題。
gRPC 消息序列化方式通常使用 Protobuf,它是二進制格式,體積小,網絡傳輸快,占用帶寬流量少,調用性能更高。
gRPC 的特點
-
IDL
gRPC 使用 ProtoBuf 來定義服務,ProtoBuf 是由 Google 開發的一種數據序列化協議(類似于 XML、JSON)。ProtoBuf 能夠將數據進行序列化,并廣泛應用在數據存儲、通信協議等方面。
-
多語言支持
gRPC 支持多種語言,并能夠基于語言自動生成客戶端和服務端功能庫。目前已提供了 C 版本 grpc、Java 版本 grpc-java 和 Go 版本 grpc-go,其中,grpc 支持 C、C++、Node.js、Python、Ruby、Objective-C、PHP 和 C# 等語言,grpc-java 已經支持 Android 開發。
-
HTTP2
gRPC基于HTTP2標準設計,帶來了