如何便捷的调试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来进行服务界说的展示和调用了。
如果还有兴趣的同学,能够去看下源码。

© 版权声明
好牛新坐标
版权声明:
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com

相关文章