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