整個過程就是:php
一、客戶端 發送 數據(以字節流的方式)java
二、服務端接收,並解析。 根據 約定 知道要知道執行什麼。而後把結果返回客戶端 RPC就是 把 一、上述過程封裝下,使其操做更加優化 二、使用一些你們都承認的協議 使其規範化 三、作成一些框架。直接或間接產生利益c++
剛纔咱們講的「賺錢利器」 其中一個框架就是一款語言中立、平臺中立、開源的遠程過程調用(RPC)框架 gRpc 。git
支持java、c++、golang、php多個語言版本。 咱們只須要關心 golang版本 https://github.com/grpc/grpc-gogithub
建立一個空項目,使用go module的方式 安裝 go get -u google.golang.org/grpc 安裝不了golang
請戳這裏看方法: http://www.hishenyi.com/archives/1420windows
Protobuf網絡
Google Protocol Buffer( 簡稱 Protobuf) 輕便高效的序列化數據結構的協議,能夠用於網絡通訊和數據存儲。數據結構
特色:性能高、傳輸快、維護方便,反正就是各類好,各類棒 一些第三方rpc庫都會支持protobuf框架
github地址: https://github.com/protocolbuffers/protobuf
golang庫所屬地址 https://github.com/golang/protobuf
安裝
本課時演示在windows裏的安裝 第一步來到這: 查看 https://github.com/protocolbuffers/protobuf/blob/master/src/README.md#c-installation---windows 繼而安裝https://github.com/protocolbuffers/protobuf/releases/latest (僅作學習使用 )
解壓後放到 某個 你喜歡的文件夾中(不能夠有中文,不能有空格,沒有爲何)
譬如本課時放在了D:\systool\protoc39 而後把 D:\systool\protoc39\bin 加入環境變量 這是protobuf編譯器,
將.proto文件,轉譯成protobuf的原生數據結構
protobuf相關文檔 https://developers.google.com/protocol-buffers/docs/gotutorial
安裝插件
go get github.com/golang/protobuf/protoc-gen-go
此時會在你的GOPATH 的bin目錄下生成可執行文件
. protobuf的編譯器插件protoc-gen-go 等下咱們執行protoc 命令時 就會自動調用這個插件
建立中間文件
syntax="proto3"; package services; message ProdRequest { int32 prod_id =1; //傳入的商品ID } message ProdResponse{ int32 prod_stock=1;//商品庫存 } 而後執行 protoc --go_out=../services/ Prod.proto