golang使用最新grpc說(shuō)明

1.環(huán)境說(shuō)明

1.系統(tǒng):ubuntu 版本20.04

2.軟件:golang 版本1.15.6

2.所需文件

1.golang安裝包 https://golang.org/dl/go1.15.6.linux-amd64.tar.gz

2.grpc包 https://github.com/grpc/grpc-go/archive/v1.34.0.tar.gz

3.protoc 文件 https://github.com/protocolbuffers/protobuf/releases/download/v3.14.0/protoc-3.14.0-linux-x86_64.zip

4.protobuf 文件 https://github.com/golang/protobuf/archive/v1.4.3.tar.gz

3.環(huán)境部署

1.golang環(huán)境安裝

tar zxvf go1.15.6.linux-amd64.tar.gz-C/usr/local

2.設(shè)置環(huán)境變量

編輯編輯 /etc/profile 文件

nano /etc/profile

在文件末尾添加下列內(nèi)容

exportGOROOT=/usr/local/go

exportGOBIN=$GOROOT/bin

exportPATH=$PATH:$GOBIN:$GOROOT

3.環(huán)境變量生效命令

source/etc/profile

4.驗(yàn)證安裝是否成功命令

go version

輸出goang版本 即為成功

5.開啟 go mod

go env-wGO111MODULE=on

go env-wGOPROXY=https://goproxy.cn,https://goproxy.io,direct

6.下載依賴

gogetgoogle.golang.org/protobuf/cmd/protoc-gen-go \

? ? ? ? google.golang.org/grpc/cmd/protoc-gen-go-grpc

或者直接將grpc包和protobuf包解壓到$GOPATH/google.golang.org

7.把protoc添加到環(huán)境變量中

exportPATH="$PATH:$(go env GOPATH)/bin"

或者直接解壓protoc-3.14.0-linux-x86_64.zip ,將bin目錄的protoc復(fù)制到$GOBIN目錄

8.運(yùn)行helloword example

cd $GOPATH/google.golang.org/grpc/example/helloworld

$ gorun greeter_server/main.go

重新打開一個(gè)新端口作郭,運(yùn)行

$ gorun greeter_client/main.go

Greeting: Hello world

9.修改proto內(nèi)容陨囊,重新編譯

protoc--go_out=.--go_opt=paths=source_relative \

--go-grpc_out=.--go-grpc_opt=paths=source_relative \

?? helloworld/helloworld.proto

10. go_package 說(shuō)明

.proto文件應(yīng)包含一個(gè)選項(xiàng),用于指定包含所生成代碼的Go軟件包的完整導(dǎo)入路徑夹攒。

option go_package="example.com/foo/bar";

輸出文件所在的輸出目錄的子目錄取決于go_package選項(xiàng)和編譯器標(biāo)志:

默認(rèn)情況下蜘醋,輸出文件放置在以Go軟件包的導(dǎo)入路徑命名的目錄中。例如芹助,protos/foo.proto 具有上述go_package選項(xiàng)的文件將生成名為的文件 example.com/foo/bar/foo.pb.go堂湖。

如果給--go_opt=module=$PREFIX標(biāo)記protoc,則從輸出文件名中刪除指定的目錄前綴状土。例如无蜂,protos/foo.proto具有上述go_package選項(xiàng)和標(biāo)志--go_opt=module=example.com/foo的文件將生成名為的文件 bar/foo.pb.go。

如果給--go_opt=paths=source_relative標(biāo)記 protoc蒙谓,則將輸出文件放置在與輸入文件相同的相對(duì)目錄中斥季。例如,該文件protos/foo.proto 生成名為的文件protos/foo.pb.go累驮。

當(dāng)您像這樣運(yùn)行原型編譯器時(shí)

protoc--proto_path=src--go_out=build / gen--go_opt=paths=source_relative src / foo.proto src / bar / baz.proto

源.proto文件應(yīng)包含一個(gè)go_package選項(xiàng)酣倾,用于為包含該文件的包指定完整的Go導(dǎo)入路徑。如果沒(méi)有 go_package選擇谤专,編譯器將嘗試猜測(cè)一個(gè)躁锡。編譯器的未來(lái)版本將使該go_package選項(xiàng)成為必需。

生成代碼的Go軟件包名稱將是該go_package選項(xiàng)的最后一個(gè)路徑部分 置侍。例如:

// Go程序包名稱為“ timestamppb”映之。

選項(xiàng)go_package=“ google.golang.org/protobuf/types/known/timestamppb”;

導(dǎo)入路徑用于確定一個(gè).proto文件導(dǎo)入另一.proto文件時(shí)必須生成哪些導(dǎo)入語(yǔ)句 拦焚。例如,如果是 a.protoimport b.proto杠输,則生成的a.pb.go文件需要導(dǎo)入包含生成的b.pb.go文件的Go軟件包(除非兩個(gè)文件都在同一個(gè)軟件包中)赎败。

導(dǎo)入路徑還用于構(gòu)造輸出文件名。有關(guān)詳細(xì)信息蠢甲,請(qǐng)參見上面的“編譯器調(diào)用”部分僵刮。

該go_package選項(xiàng)還可以包括一個(gè)顯式的程序包名稱,該名稱與導(dǎo)入路徑之間用分號(hào)分隔鹦牛。例如:“ example.com/foo;package_name”搞糕。不鼓勵(lì)使用此方法,因?yàn)橥ǔJ拱Q與導(dǎo)入路徑相對(duì)應(yīng)(默認(rèn)值)更加清晰能岩。作為該go_package選項(xiàng) 的替代方法寞宫,.proto可以在命令行中使用 --go_opt=M=$FILENAME=$IMPORT_PATH flag to protoc.

具體protoc語(yǔ)法詳情見鏈接 https://developers.google.com/protocol-buffers/docs/reference/go-generated#package

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市拉鹃,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鲫忍,老刑警劉巖膏燕,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異悟民,居然都是意外死亡坝辫,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門射亏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)近忙,“玉大人,你說(shuō)我怎么就攤上這事智润〖吧幔” “怎么了?”我有些...
    開封第一講書人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵窟绷,是天一觀的道長(zhǎng)锯玛。 經(jīng)常有香客問(wèn)我,道長(zhǎng)兼蜈,這世上最難降的妖魔是什么攘残? 我笑而不...
    開封第一講書人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮为狸,結(jié)果婚禮上歼郭,老公的妹妹穿的比我還像新娘。我一直安慰自己辐棒,他們只是感情好病曾,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開白布牍蜂。 她就那樣靜靜地躺著,像睡著了一般知态。 火紅的嫁衣襯著肌膚如雪捷兰。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,198評(píng)論 1 299
  • 那天负敏,我揣著相機(jī)與錄音贡茅,去河邊找鬼。 笑死其做,一個(gè)胖子當(dāng)著我的面吹牛顶考,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播妖泄,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼驹沿,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了蹈胡?” 一聲冷哼從身側(cè)響起渊季,我...
    開封第一講書人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎罚渐,沒(méi)想到半個(gè)月后却汉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡荷并,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年合砂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片源织。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡翩伪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出谈息,到底是詐尸還是另有隱情缘屹,我是刑警寧澤,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布黎茎,位于F島的核電站囊颅,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏傅瞻。R本人自食惡果不足惜踢代,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嗅骄。 院中可真熱鬧胳挎,春花似錦、人聲如沸溺森。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至医窿,卻和暖如春磅甩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背姥卢。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工卷要, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人独榴。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓僧叉,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親棺榔。 傳聞我的和親對(duì)象是個(gè)殘疾皇子瓶堕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容