首页 > 其他分享 >工作中你会使用到 grpcurl 吗?

工作中你会使用到 grpcurl 吗?

时间:2023-08-29 22:22:23浏览次数:48  
标签:grpcurl 接口 工作 tenant 使用 go 服务端 grpc

在平时的开发过程中,我们一般是 http 接口对外, grpc 接口对内部微服务

相信对于如何去请求 http 接口,大家都很熟悉了

  • 如果是 inux 里面使用 curl 命令
  • 在 windows 里面我们可以使用 postman 来请求接口
  • 如果对于一个云上开发的接口的话,我们可能会使用 apifox 来进行请求

那么对于 grpc 服务端提供的接口,我们一般会如何去请求这些接口来自测呢

  • Windows 里面我们可以使用 bloomRPC 工具
  • Linux 里面我们可以使用 grpcurl 工具

DEMO

关于 grpc 的基本知识,感兴趣的可以查看历史文章:

那么我们写一个 demo,一个 grpc 的服务端,提供如下接口

  • 查询租户的详情
  • 查询租户的列表

Demo 目录结构如下:

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

image.png

protoc --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative tenant.proto

基本简单的代码实现如下:

rpc_services.go 代码如下

image.png

这个时候启动咱们的服务端,如何运行 golang 程序就不赘述了

bloomRPC 工具

开始来下载 bloomRPC 工具

对于 bloomRPC 工具,我们可以在这个地址里面去下载,自由选择:

下载安装之后,我们可以看到 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

至此,本篇内容结束

【欢迎查看历史文章】

感谢阅读,欢迎交流,点个赞,关注一波 再走吧

欢迎点赞,关注,收藏

朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力

好了,本次就到这里

技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。

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

标签:grpcurl,接口,工作,tenant,使用,go,服务端,grpc
From: https://www.cnblogs.com/xiaomotong/p/17665996.html

相关文章

  • 使用Apache IoTDB进行IoT相关开发的架构设计与功能实现(12)
    现在到了使用ApacheIoTDB进行IoT相关开发的架构设计与功能实现的最后一个环境,在本文中我将向大家介绍IoTDB的查询语言。IoTDB为咱们广大开发者提供了类似SQL的查询语言,用于与IoTDB进行交互,查询语言可以分为4个主要部分:架构语句:本节中列出了有关架构管理的语句。数据管理语句:本节中......
  • final finally finalize 区别及各自使用的特点
    1.final介绍final是Java语言中的一个关键字,使用final修饰的对象不允许修改或替换其原始值或定义。​final可以用来修饰:类、方法、变量和参数,其中可以用来修饰“参数”这一项,容易被人遗忘,这是final的4种用法。​1.1final用法说明当final修饰类时,此类不允许被......
  • 阿里云sls日志服务使用
    使用开启sls服务,需要充值创建project创建logstore给sls服务创建一个RAM账号,并分配权限给账号创建accessKeySecret秘钥对logstore下日志的字段创建索引(创建索引的字段才能搜索)通过阿里提供的sdk向logstore发送日志<dependency><groupId>com.aliyun.openservices</gr......
  • 使用 ONLYOFFICE 宏生成和插入词义
    要让写的内容更清楚,建议在文章中添加一些词义。使用ONLYOFFICE宏,这个可以来自动实现,无需浪费时间了。阅读本文,了解如何创建一个宏,从外部API中提取单词定义并将其无缝插入到文档中。什么是ONLYOFFICE宏如果您是一名资深MicrosoftExcel用户,那么相信您已对于VBA宏非常熟悉......
  • 使用 ONLYOFFICE 宏生成和插入词义
    要让写的内容更清楚,建议在文章中添加一些词义。使用ONLYOFFICE宏,这个可以来自动实现,无需浪费时间了。阅读本文,了解如何创建一个宏,从外部API中提取单词定义并将其无缝插入到文档中。什么是ONLYOFFICE宏如果您是一名资深MicrosoftExcel用户,那么相信您已对于VBA宏非常熟悉......
  • 电脑技巧:分享几个Win11使用小技巧,值得收藏!
    Windows11作为微软最新推出的操作系统,应该有很多人已经升级使用了,相比之前的Windows10版本,在界面和操作方面上都有很多改进和优化。下面小编给大家整理一下几个Win11实用的小技巧,希望对大家日常使用电脑能提供一些帮助!1、自定义任务栏Windows11的任务栏可以自定义,您可以将常用的......
  • 使用clion阅读任意交叉编译软件的代码
    clion是linux下比较强大的C/C++IDE,通过扩展也可以支持很多其他语言,例如shell,lua,perl,python,rust。唯一缺点是收费,但是相对它给我带来的便利,这点费用不算什么。我一般用来开发C/C++/项目,它支持3种方式解析工程源码,分别是MakefileCMake编译数据库像代码的高亮,跳转,补全,都......
  • python3.6使用wordcloud 1.9报错ValueError: Only supported for TrueType fonts
    该版本的wordcloud的源码中显示不兼容python3.6 解决办法:修改wordcloud源码修改前508:box_size=draw.textbox((0,0),word,font=transposed_font,anchor="lt")510:result=occupancy.sample_position(box_size[3]+self.margin,......
  • django自带的cache缓存框架使用
    https://docs.djangoproject.com/zh-hans/4.2/topics/cache/#top主要步骤官网也写得很清楚了,包含怎么区使用。这里就展示一些配置django-redis来使用#settings.pyCACHES={'default':{#默认,预留'BACKEND':'django_redis.cache.RedisCache','......
  • 移动端/H5/rem 开发,使用lib-flexible 和 postcss-pxtorem适应不同分辨率
    一、安装 1.直接使用npm包管理工具进行下载npminstalllib-flexible--savenpminstallpostcss-pxtorem--save*如果报错:“Error:PostCSSpluginpostcss-pxtoremrequiresPostCSS8.”报错的意思是postcss-pxtorem为8.0,但实际上官网最新版本为6.0(有可能是6.0版本与v......