无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(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)遵守國家法律
思南县| 呼和浩特市| 绩溪县| 手机| 东至县| 宁城县| 陇南市| 海口市| 福安市| 长子县| 宁强县| 舞阳县| 扎鲁特旗| 尼玛县| 龙游县| 靖远县| 玉林市| 三原县| 安阳县| 久治县| 仙居县| 凤庆县| 沾益县| 甘洛县| 依安县| 灵山县| 邵东县| 临夏市| 加查县| 凤冈县| 汝城县| 班戈县| 陆河县| 临泽县| 大邑县| 固原市| 琼海市| 进贤县| 荥阳市| 来宾市| 栾川县|