该篇文章介绍了golang的grpc编程。
通过下面的例子,你将会学到:
1. 在一个.proto文件里define一个service
2. 用protocol buffer 编译工具生成server和client代码
3. 用go grpc的api写一个简单的server和client
你应该已经读过 概述( Overview),并且对 protocol buffers有所了解,注意教程中的例子用了protocol buffer 的proto3版本:详情见以下两个链接 proto3 language guide , Go generated code guide.
为什么用grpc?
我们的示例是一个简单的路由映射应用程序,它允许客户机获取有关其路由上功能的信息,创建其路由的摘要,并与服务器和其他客户机交换路由信息,如流量更新。
用grpc我们可以在.proto文件中定义我们的服务,并且支持任何语言的server和client..这些server和client可以在从谷歌的内部服务器到你的平板电脑上运行。所有的不同平台的语言的通讯的复杂性都由grpc为你处理。用protocol buffer的优势包括高效的序列化/简单的IDL/高可用的接口更新
实例代码和setup
示例代码在 grpc/grpc-go/examples/route_guide。去下载示例代码并且clone grpc-go通过运行如下命令:
$ go get google.golang.org/grpc
cd到grpc-go/examples/route_guide:
$ cd $GOPATH/src/google.golang.org/grpc/examples/route_guide
你应该已经安装了相应的工具来生成server和client的接口代码。如果没有看如下链接:Go quick start guide.
定义service
我们的第一步是通过protoco buffer 定义grpc的service以及response和request的类型.你可以在examples/route_guide/routeguide/route_guide.proto看到完成的.proto文件。
在proto文件中定义service:
service RouteGuide { ...}
有疑问加站长微信联系(非本文作者)