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标准设计,带来了