整個過程就是:
1、客戶端 發送 數據(以字節流的方式)
2、服務端接收,並解析。 根據 約定 知道要知道執行什么。然后把結果返回客戶端 RPC就是 把 1、上述過程封裝下,使其操作更加優化 2、使用一些大家都認可的協議 使其規范化 3、做成一些框架。直接或間接產生利益
剛才我們講的“賺錢利器” 其中一個框架就是一款語言中立、平台中立、開源的遠程過程調用(RPC)框架 gRpc 。
支持java、c++、golang、php多個語言版本。 我們只需要關心 golang版本 https://github.com/grpc/grpc-go
創建一個空項目,使用go module的方式 安裝 go get -u google.golang.org/grpc 安裝

1、 創建一個環境變量 叫做GOPROXY (大小寫敏感),值是https://goproxy.io (必須是https。不要自己篡改url) 2、重啟你的終端(如果是windows cmd的話。Linux 則export GOPROXY=https://goproxy.io ) ,然后 再正常執行 go get xxxxx

目前阿里雲也開放了代理服務 戳這里http://mirrors.aliyun.com/goproxy/ 也就是說:設置成如下變量,就可以了 export GOPROXY=https://mirrors.aliyun.com/goproxy/
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