gRPC

简介

gRPC是一个高性能、开源和通用的RPC框架,面向移动和HTTP/2设计。
目前提供C、Java和Go语言版本,分别是grpc、grpc-java、grpc-go。
gRPC基于HTTP/2标准设计,带来诸如双向流、流控、头部压缩、单TCP连接上的多复用请求等特性。
这些特性使得其在移动设备上表现更好,更省电和节省空间占用。
gRPC由google开发,是一款语言中立、平台中立、开源的远程过程调用系统。

gRPC是什么

在gRPC里客户端应用可以像调用本地对象一样直接调用另一台不同机器上服务端应用的方法,
使得你能够更容易地创建分布式应用和服务。与许多RPC系统类似,gRPC也是基于以下理念:
定义一个服务,指定其能够被远程调用的方法(包括参数和返回类型)。
在服务端实现这个接口,并运行一个gRPC服务器来处理客户端调用。
在客户端拥有一个存根能够像服务端一样的方法。

gRPC客户端和服务端可以在多种环境中运行和交互,从google内部的服务器到你的笔记本,并且可以使用任何gRPC支持的语言编写。
所以你可以很容易滴用Java创建一个gRPC服务端,用go、python、ruby来创建客户端。
此外,google最新api将有gRPC版本的接口,使你很容易地将Google的功能集成到你的应用中。

使用protocol buffers

gRPC默认使用protocol buffers,这是google开源的一套成熟的结构数据序列化机制(当然也可以使用其他数据格式如JSON)
可以用proto files创建gRPC服务,用protocol buffers消息类型来定义方法参数和返回类型。

Protocbuf安装

apt-get install autoconf automake libtool
wget https://github.com/google/protobuf/archive/v3.4.1.tar.gz
tar zxvf v3.4.1.tar.gz
cd protobuf-3.4.1
./autogen.sh
./configure
make
make install
protoc --version

go get github.com/golang/protobuf/protoc-gen-go
cd $GOPATH/src/github.com/golang/protobuf/protoc-gen-go
go build
go install

go get github.com/golang/protobuf/proto
cd $GOPATH/src/github.com/golang/protobuf/proto
go build
go install

helloworld

go get github.com/grpc/grpc-go
cd $GOPATH/src/github.com/grpc/grpc-go/examples/helloworld/helloworld
protoc --go_out=plugins=grpc:. helloworld.proto

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • gRPC介绍 gRPC 是一个高性能、开源、通用的RPC框架,由Google推出,基于HTTP/2协议标准设计开发...
    莫名FCJ阅读 5,941评论 1 6
  • GRPC是基于protocol buffers3.0协议的. 本文将向您介绍gRPC和protocol buffe...
    二月_春风阅读 18,121评论 2 28
  • gRPC是由Google主导开发的RPC框架,使用HTTP/2协议并用ProtoBuf作为序列化工具。其客户端提供...
    CZ_Golang阅读 82,256评论 9 71
  • 如果你完全不了解webpack,建议从概念开始。 本指南,让你理解并掌握webpack提供的种类繁多的工具以及特性...
    炎武森禄阅读 5,328评论 0 3
  • 祝我生日快乐 躺在床上,看到手机里收到的一条条祝我生日快乐的微信,我随手打开音乐播放器,把音量调到了最小,...
    咖啡加点糖2017阅读 1,436评论 0 0