最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

最簡單的 gRPC 教程— 1 初識(shí) gRPC

2021-04-12 21:40 作者:roseduanV  | 我要投稿

gRPC 是 Google 開源的一個(gè)高性能的 RPC(Remote Procedure Call) 框架,它具有如下的優(yōu)點(diǎn):

  • 提供高效的進(jìn)程間通信。gRPC 沒有使用 XML 或者 JSON 這種文本格式,而是采用了基于 protocol buffers 的二進(jìn)制協(xié)議;同時(shí),gRPC 采用了 HTTP/2 做為通信協(xié)議,從而能夠快速的處理進(jìn)程間通信。

  • 簡單且良好的服務(wù)接口和模式。gRPC 為程序開發(fā)提供了一種契約優(yōu)先的方式,必須首先定義服務(wù)接口,才能處理實(shí)現(xiàn)細(xì)節(jié)。

  • 支持多語言。gRPC 是語言中立的,我們可以選擇任意一種編程語言,都能夠與 gRPC 客戶端或者服務(wù)端進(jìn)行交互。

  • 成熟并且已被廣泛使用。通過在 Google 的大量實(shí)戰(zhàn)測(cè)試,gRPC 已經(jīng)發(fā)展成熟。

下面通過一個(gè)簡單的 demo 來初步了解 gRPC 的使用。

我們構(gòu)建一個(gè)商品服務(wù),命名為 ProductInfo,客戶端和服務(wù)端的交互模式如下:


首先我們需要定義 protobuf:

我們定義了一個(gè) ProductInfo 服務(wù),其中有兩個(gè)方法,分別是添加商品和獲取商品,然后在 proto 文件所在的目錄下執(zhí)行命令?protoc --go_out=plugins=grpc:../product ProductInfo.proto。

如果沒有安裝 protoc,執(zhí)行命令?go get -u github.com/golang/protobuf/protoc-gen-go?進(jìn)行安裝。雖然 gRPC 支持多種語言,但是為了統(tǒng)一,我文章中的代碼都使用 Go。

執(zhí)行完之后,在 proto 文件同級(jí)目錄下會(huì)出現(xiàn)一個(gè)?ProductInfo.pb.go?文件:



然后在 product 文件夾下新建一個(gè) server 文件夾,然后新建一個(gè)?main.go?文件,首先在文件中實(shí)現(xiàn) ProductInfo 服務(wù)的兩個(gè)方法的業(yè)務(wù)邏輯:

然后繼續(xù)在 main.go 文件中添加一個(gè) main 方法,建立一個(gè) gRPC 服務(wù)器:

服務(wù)端的邏輯就到這里了,接下來再寫一下客戶端的邏輯,建立一個(gè) client 文件夾,然后新建一個(gè) main.go 文件,內(nèi)容如下:

然后先啟動(dòng) server/main.go ,再啟動(dòng) client/main.go,這樣一次服務(wù)端和客戶端之間的連接便完成了,可以看到運(yùn)行的結(jié)果輸出了:



當(dāng)然你也可以在服務(wù)端的方法中,加上一些日志來驗(yàn)證一下。

最后,這個(gè)小的 demo 的目錄結(jié)構(gòu)就是這樣的:


項(xiàng)目的代碼在我的GitHub 上:github.com/roseduan/grp

要是覺得我的文章不錯(cuò)的話,歡迎給我點(diǎn)個(gè)贊哦!


最簡單的 gRPC 教程— 1 初識(shí) gRPC的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
哈尔滨市| 平塘县| 江华| 中超| 颍上县| 潞西市| 吉林省| 喜德县| 乌鲁木齐县| 潞西市| 诏安县| 改则县| 望都县| 赣榆县| 竹山县| 乌审旗| 兴宁市| 岐山县| 普洱| 盘锦市| 信丰县| 新田县| 小金县| 仲巴县| 铜川市| 绿春县| 宁陕县| 马关县| 达州市| 江门市| 荣成市| 枣庄市| 通榆县| 平顺县| 辽中县| 阜平县| 金塔县| 象州县| 石门县| 通河县| 嘉义县|