超實(shí)用的 gRPC 客戶端調(diào)試工具
本文轉(zhuǎn)載自微信公眾號「吳親強(qiáng)的深夜食堂」,作者吳親庫里 。轉(zhuǎn)載本文請聯(lián)系吳親強(qiáng)的深夜食堂公眾號。
介紹
正好看到董澤潤老哥一篇關(guān)于使用WireShark分析gRPC流量的文章,學(xué)到了。原文地址:小技巧!Wireshark 讓調(diào)試 grpc 不再困難
那我就介紹使用過的兩款gRPC客戶端調(diào)試工具吧。
Evans
Evans[1]有兩種運(yùn)行模式:REPL和CLI。
比起其他gRPC客戶端,Evans更具有表現(xiàn)力,并且它還支持自動補(bǔ)全功能。
Evans的安裝非常方便,在Mac上我們只需要執(zhí)行以下兩行命令即可。
我們來學(xué)習(xí)一下REPL模式。
首先我們需要有一個(gè)pb文件,假設(shè)你的文件在api/api.proto,我們只需要這樣:
默認(rèn)地址為127.0.0.1:50051,當(dāng)然你可以通過--host和--port來指定服務(wù)器。
上圖的命令:
- show package讀取pb包名,
- show service顯示對應(yīng)服務(wù)列表。
- call xxx調(diào)用gRPC服務(wù)......
- .....
更多命令可自行查閱官網(wǎng)。
除了上述這種直接引入pb文件外,我們還可以通過gRPC反射包(reflection), 將grpc.Server注冊到反射服務(wù)中。
這樣的話,就可以通過reflection提供的反射服務(wù)查詢到對應(yīng)的gRPC服務(wù),或者直接調(diào)用gRPC服務(wù)。
注冊反射服務(wù)操作也很簡單,
回到Evans工具, 如果一個(gè)gRPC服務(wù)注冊了反射,我們就可以使用-r選項(xiàng)來啟動Evans。
比如像下面這樣:
對另外一種模式感興趣的可以自行查看官網(wǎng),這里不再演示。
BloomRPC
BloomRPC[2]是一個(gè)簡單的GUI客戶端工具,使用這個(gè)那就更簡單了。
只需要導(dǎo)入pb文件,然后點(diǎn)兩下即可。
當(dāng)然有個(gè)不好點(diǎn)在于,每次修改了pb,都不得不重新導(dǎo)入。
總結(jié)
以上介紹了兩款gRPC客戶端工具。不知道你們平常都使用gRPC哪些周邊工具,歡迎一起討論。
附錄
[1]https://github.com/ktr0731/evans
[2]https://github.com/uw-labs/bloomrpc