grpc 基礎知識 - Go
該篇文章介紹了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 { ...}