前言
微服務相關
使用 GRPC
通訊的 Golang
微服務入門
舉例寫一個微服務,接收網址發送請求獲取返回結果返回
正文
安裝工具
安裝 protobuf
這是 proto 文件的編譯器
點我下載
選擇最新的 releases 中的適合你版本的包下載即可
如 windows 選 win64.zip 下載后解壓
解壓后打開包內的 bin 文件夾,里面有 protoc.exe
將其粘貼到windows的環境變量中的某一個文件夾內以便在 CMD 中隨地可訪問
比如將其放至 C:\Windows
下
打開 CMD 輸入 protoc --version
成功打印當前版本即可
安裝相關包
安裝 golang
的proto工具包
go get -u github.com/golang/protobuf/proto
安裝 goalng
的proto編譯支持
go get -u github.com/golang/protobuf/protoc-gen-go
安裝 GRPC
包
go get -u google.golang.org/grpc
創建項目
模擬微服務開發,在某個空文件夾下建立兩個文件夾
分別為 client
和 server
創建 proto 文件
proto 文件是微服務交互的基本
proto的語法可見
GoogleDocs
這里簡單寫一個示例(spider.proto)
syntax = "proto3"; // 協議為proto3
package spider; // 包名
// 發送請求
message SendAddress {
// 發送的參數字段
// 參數類型 參數名 標識號(不可重復)
string address = 1; // 要請求的地址
string method = 2; // 請求方式
}
// 返回響應
message GetResponse {
// 接收的參數字段
// 參數類型 參數名 標識號
int32 httpCode = 1; // http狀態碼
string response = 2; // 返回體
}
// 定義服務,可定義多個服務,每個服務可多個接口
service GoSpider {
// rpc請求 請求的函數 (發送請求參數) returns (返回響應的參數)
rpc GetAddressResponse (SendAddress) returns (GetResponse);
}
生成 .bp.go
文件
使用剛才下載的 protoc 工具將 proto 文件編譯成 golang 可識別的文件
protoc --go_out=. --go_opt=paths=source_relative \
--go-grpc_out=. --go-grpc_opt=paths=source_relative \
./exp.proto
運行后會在當前目錄下生成 spider.pb.go
文件
該文件是 server 和 client 的通信協議,業務代碼不在這里,所以除非必須改,否則勿動