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

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

工作中你會使用到 grpcurl 嗎?

2023-08-29 23:03 作者:阿兵云原生  | 我要投稿

在平時的開發(fā)過程中,我們一般是 http 接口對外, grpc 接口對內(nèi)部微服務

相信對于如何去請求 http 接口,大家都很熟悉了

  • 如果是 inux 里面使用 curl 命令

  • 在 windows 里面我們可以使用 postman 來請求接口

  • 如果對于一個云上開發(fā)的接口的話,我們可能會使用 apifox 來進行請求

那么對于 grpc 服務端提供的接口,我們一般會如何去請求這些接口來自測呢

  • Windows 里面我們可以使用 bloomRPC 工具

  • Linux 里面我們可以使用 grpcurl 工具

DEMO

關于 grpc 的基本知識,感興趣的可以查看歷史文章:

  • gRPC介紹

  • gRPC 客戶端調(diào)用服務端需要連接池嗎?

  • gRPC的攔截器

  • gRPC的認證

  • 分享一下 gRPC- HTTP網(wǎng)關 I

那么我們寫一個 demo,一個 grpc 的服務端,提供如下接口

  • 查詢租戶的詳情

  • 查詢租戶的列表

Demo 目錄結構如下:

咱們的 proto 文件可以是這樣的:

protoc?--go_out=.?--go_opt=paths=source_relative?--go-grpc_out=.?--go-grpc_opt=paths=source_relative?tenant.proto

基本簡單的代碼實現(xiàn)如下:

rpc_services.go 代碼如下

這個時候啟動咱們的服務端,如何運行 golang 程序就不贅述了

bloomRPC 工具

開始來下載 bloomRPC 工具

對于 bloomRPC 工具,我們可以在這個地址里面去下載,自由選擇:

  • https://appimage.github.io/BloomRPC/

  • https://github.com/bloomrpc/bloomrpc/releases

下載安裝之后,我們可以看到 bloomRPC 是如下這個界面,非常清爽

導入咱們的 tenant.proto 文件后,可以看到咱們服務端提供的如下兩個接口:

  • get_tenant_detail

  • get_tenant_list

這個時候,咱們就可以使用 bloomRPC 工具,請求咱們服務端的接口了,效果如下:

獲取租戶詳情

獲取租戶列表

Windows 的工具比較簡單,我們來看看 linux 里面的 grpcurl 工具

grpcurl 工具

grpcurl 是linux 里面與grpc服務器交互的命令行工具,咱們就可以理解是 curl 工具的 grpc 版本

使用 grpcurl 工具,我們需要在咱們的代碼實現(xiàn)中給我們的 grpc 服務端注冊一下 reflection

  • 先來看看 grpcurl 工具的安裝

go?get?github.com/fullstorydev/grpcurl
go?install?github.com/fullstorydev/grpcurl/cmd/grpcurl@latest

  • 然后在我們上述的 rpc_services.go 代碼中,注冊 reflection

  • 效果驗證

這個時候,咱們將上述的 rpc_tool_demo 整個項目放到 linux 中進行運行,啟動服務端,當然我的 demo 中 grpc 服務端監(jiān)聽的是 8888 端口,如果咱們 linux 環(huán)境這個端口已經(jīng)被占用了,可以自行更換端口

以本 demo 為例

查看服務列表

grpcurl?-plaintext?localhost:8899?list

查看指定服務的接口列表

grpcurl?-plaintext?localhost:8899?list?tenant.Tenant

查看某一個 rpc 接口的實際情況

grpcurl?-plaintext?localhost:8899?describe?tenant.Tenant.get_tenant_detail

查看具體某一個結構體的詳情

grpcurl?-plaintext?localhost:8899?describe?.tenant.TenantDetailRsp

使用 grpcurl 請求 grpc 服務端的接口

對于 grpcurl 的其他奇淫巧技可以查看幫助清單

grpcurl?-h

如果需要查看 demo 源碼,可以進入地址:https://github.com/qingconglaixueit/rpc_tool_demo

至此,本篇內(nèi)容結束

【歡迎查看歷史文章】

  • 微服務框架 go-zero logx 日志組件剖析[1]

  • 微服務框架 go-zero 快速實戰(zhàn)[2]

  • 微服務框架 go-zero 的鏈路追蹤[3]

感謝閱讀,歡迎交流,點個贊,關注一波 再走吧

歡迎點贊,關注,收藏

朋友們,你的支持和鼓勵,是我堅持分享,提高質量的動力

好了,本次就到這里

技術是開放的,我們的心態(tài),更應是開放的。擁抱變化,向陽而生,努力向前行。

我是阿兵云原生,歡迎點贊關注收藏,下次見~

參考資料

[1]

https://juejin.cn/post/7139711202682208293: https://juejin.cn/post/7139711202682208293

[2]

https://juejin.cn/post/7138960256054345741: https://juejin.cn/post/7138960256054345741

[3]

微服務框架 go-zero 的鏈路追蹤: https://juejin.cn/post/7141347827786973198


工作中你會使用到 grpcurl 嗎?的評論 (共 條)

分享到微博請遵守國家法律
蒙自县| 威信县| 深州市| 泽库县| 屯留县| 班玛县| 贡觉县| 闽清县| 平遥县| 宜川县| 五家渠市| 岑巩县| 泰来县| 汤原县| 富平县| 澄城县| 云霄县| 吴江市| 黄梅县| 吉水县| 浦北县| 新田县| 四川省| 福州市| 巴里| 固始县| 鹿邑县| 惠水县| 资兴市| 巴林右旗| 阿合奇县| 新民市| 渭南市| 剑河县| 灵山县| 永仁县| 沙河市| 呼图壁县| 福鼎市| 汝州市| 日土县|