工作中你會使用到 grpcurl 嗎?
在平時的開發(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