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