志在指尖
用双手敲打未来

如何便捷的调试gRPC程序

gRPC是一款广泛应用的rpc框架,由于根据C/S架构,服务发动之后,需求编写对应的客户端才干调用,调试起来相对费事一些,这儿主要介绍一下怎么通过swagger-ui来调试grpc服务。
grpc-swagger
gRPC-swagger是根据gRPC反射开发的一款gRPC调试东西,能够运用swagger-ui方便地展示和调用gRPC办法。由于gRPC-swagger是根据反射开发,所以运用时无需修改proto及相关的代码完成,只需在发动服务时敞开反射功用(不只java,其他言语也能够)。下图是运用作用java手写多级缓存
项目地址
grpc-swagger
运用办法
发动grpc-swagger服务
grpc-swagger是根据springboot开发,能够下载jar包直接运行:
wgethttps://github.com/grpc-swagger/grpc-swagger/releases/latest/download/grpc-swagger.jar
java-jargrpc-swagger.jar
发动服务时敞开反射
该东西是根据gRPC反射做的,所以需求在发动服务时敞开反射,下面是java敞开反射的办法:
添加依靠
<dependency><groupId>io.grpcgroupId><artifactId>grpc-servicesartifactId><version>${grpc.version}version>dependency>
敞开反射
Serverserver=ServerBuilder.forPort(SERVER_PORT)
.addService(newHelloServiceImpl())//这儿敞开反射.addService(ProtoReflectionService.newInstance())
.build()
.start();
其他言语敞开办法参考GRPCServerReflectionProtocol
注册服务
由于咱们一开端并不知道对应的gRPC服务供给哪些服务办法,所以这儿有个注册服务的进程,其所做的事便是输入方针服务的地址,然后通过反射来获取当时gRPC服务供给的服务办法。当时供给一个简单的页面,地址是http://localhost:8080/ui/r.html,在EndpointRegister里填入grpc服务的地址,成功注册之后会在Services里列出可用的服务
运用swagger-ui调用gRPC服务
下面就比较简单了,通过链接跳过来便是一个swagger-ui的页面,点击Tryitout就能够开端调试了。
完成原理
这儿说下大概的完成原理:
gRPC供给了反射的功用,通过反射,咱们能够完成获取服务的界说、动态的调用gRPC办法、JSON和PB相互转化等功用,这儿的完成主要是利用了这个功用。
Swagger-ui也供给了文档的格局规范,咱们将获取到的gRPC服务界说转化成swagger-ui需求的格局,就能够运用swagger-ui来进行服务界说的展示和调用了。
如果还有兴趣的同学,能够去看下源码。

未经允许不得转载:IT技术网站 » 如何便捷的调试gRPC程序
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载