在平时的开发过程中,我们一般是 http 接口对外, grpc 接口对内部微服务
相信对于如何去请求 http 接口,大家都很熟悉了
-
如果是 inux 里面使用 curl 命令
-
在 windows 里面我们可以使用 postman 来请求接口
-
如果对于一个云上开发的接口的话,我们可能会使用 apifox 来进行请求
那么对于 grpc 服务端提供的接口,我们一般会如何去请求这些接口来自测呢
-
Windows 里面我们可以使用 bloomRPC 工具
-
Linux 里面我们可以使用 grpcurl 工具
DEMO
关于 grpc 的基本知识,感兴趣的可以查看历史文章:
-
gRPC介绍
-
gRPC 客户端调用服务端需要连接池吗?
-
gRPC的拦截器
-
gRPC的认证
-
分享一下 gRPC- HTTP网关 I
那么我们写一个 demo,一个 grpc 的服务端,提供如下接口
-
查询租户的详情
-
查询租户的列表
Demo 目录结构如下:

咱们的 proto 文件可以是这样的:

protoc --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative tenant.proto
基本简单的代码实现如下:
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 工具,我们需要在咱们的代码实现中给我们的 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 服务端监听的是 8888 端口,如果咱们 linux 环境这个端口已经被占用了,可以自行更换端口
以本 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
至此,本篇内容结束
【欢迎查看历史文章】
-
微服务框架 go-zero logx 日志组件剖析[1] -
微服务框架 go-zero 快速实战[2] -
微服务框架 go-zero 的链路追踪[3]
感谢阅读,欢迎交流,点个赞,关注一波 再走吧
欢迎点赞,关注,收藏
朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力

好了,本次就到这里
技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。
我是阿兵云原生,欢迎点赞关注收藏,下次见~
参考资料
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 吗?
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/174855.html