gRPC

莫名FCJ · · 5750 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

简介

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


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:莫名FCJ

查看原文:gRPC

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

5750 次点击  ∙  1 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传