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