乐趣区

关于grpc:工作中你会使用到-grpcurl-吗

在平时的开发过程中,咱们个别是 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 日志组件分析
  • 微服务框架 go-zero 疾速实战
  • 微服务框架 go-zero 的链路追踪

感激浏览,欢送交换,点个赞,关注一波 再走吧

欢送点赞,关注,珍藏

敌人们,你的反对和激励,是我保持分享,提高质量的能源

好了,本次就到这里

技术是凋谢的,咱们的心态,更应是凋谢的。拥抱变动,背阴而生,致力向前行。

我是 阿兵云原生,欢送点赞关注珍藏,下次见~

退出移动版