简介
检查gRPC服务器的操作我该怎么办? .. ..在研究了各种东西之后,介绍了我到达的grpcurl。
似乎有各种功能,但仅会介绍其中一些功能。
确认的环境
gRPC服务器配置
- 春季靴1.5.10
- grpc-spring-boot-starter 2.4.0
开发环境
- 视窗
什么是grpcurl?
https://github.com/fullstorydev/grpcurl
它是一个可以像curl命令一样实现与gRPC服务器交互的工具。
当您运行命令时,gRPC服务器响应将以json格式返回。
详细信息写在链接中,所以我认为您可以阅读。
您需要安装go。
准备工作(Windows)
1.安装Go
下载-安装
https://golang.org/dl/
请从该站点下载适合您的环境的一种。
对于Windows,您可以按照安装程序的说明完成它,而不会出现任何问题。
检查设置
对于Windows,已将以下内容添加到环境变量中:
* GOPATH:%USERPROFILE%去
* GOROOT:安装过程中指定的目录
*添加路径:%GOPATH%bin。
安装确认
在命令提示符下键入go version,如果显示版本信息,则表明安装已完成。
1 | > go version |
*如果无法执行,请重新启动命令提示符或检查系统环境变量的路径。
2.安装grpcurl
下载-安装
您所要做的就是执行以下命令。
1 2 | > go get github.com/fullstorydev/grpcurl > go install github.com/fullstorydev/grpcurl/cmd/grpcurl |
grpcurl命令将安装在先前确认的$ GOPATH环境变量中指定位置的bin子文件夹中。
默认情况下,为Path指定%GOPATH%bin,因此您应该能够在命令提示符下立即执行它。
如果无法执行,请检查路径规范。
安装确认
如果可以执行以下命令,则grpcurl的安装完成。
1 | > grpcurl -help |
3.反射设置
在gRPC服务器上启用反射功能。
*当未启用反射时,Grpcurl还提供了一种执行方法,但是这次将其省略。
如果使用grpc-spring-boot-starter,只需将以下设置添加到application.yml。
application.yml
1 2 | grpc: enable-reflection: true |
注意:根据grpc-spring-boot-starter的版本,不支持。 (2.3.2?)
如果您不使用
起动器,则可以执行以下步骤。 (未确认)
https://github.com/grpc/grpc-java/blob/master/documentation/server-reflection-tutorial.md
您现在准备好了。
TODO Preparation(Mac版)
//即将推出...
尝试使用
启动要检查操作的gRPC服务器。
查看服务清单
1 | > grpcurl -plaintext localhost:6565 list |
-纯文本
您可以在纯文本模式下检查操作。
如果省略,则可以通过TLS进行确认。
本地主机:6565
指定gRPC服务器的主机名和端口号。
执行后,将显示服务器端的服务列表,如下所示。
执行结果
1 2 3 4 5 | > grpcurl -plaintext localhost:6565 list helloworld.HelloWorldService goodbyeworld.GoodByeWorldService grpc.health.v1.Health grpc.reflection.v1alpha.ServerReflection |
显示方法列表
1 | > grpcurl -plaintext localhost:6565 list helloworld.HelloWorldService |
helloworld.HelloWorldService
在命令后指定服务名称以获取服务列表。
执行结果
1 2 | > grpcurl -plaintext localhost:6565 list helloworld.HelloWorldService Greeting |
服务电话
1 | > grpcurl -plaintext localhost:6565 helloworld.HelloWorldService/Greeting |
helloworld.HelloWorldService /问候语
指定列表中确认的服务名称/方法名称。
执行后,结果将以json格式显示。
执行结果
1 2 3 4 | > grpcurl -plaintext localhost:6565 helloworld.HelloWorldService/Greeting { "message": "Hello World!" } |
服务电话(带有请求参数)
1 | > grpcurl -plaintext -d '{"lang":"Java"}' localhost:6565 helloworld.HelloWorldService/Greeting |
您可以在
-d之后以json格式编写参数。
它写在该网站上,但效果不佳,因为单引号很生气。
所以。 .. ..
1 | > grpcurl -plaintext -d @ localhost:6565 helloworld.HelloWorldService/Greeting |
我尝试了此操作是因为它被引入,您可以通过在
-d之后指定'@'来使用STDIN输入参数。
1 2 3 4 5 | > grpcurl -plaintext -d @ localhost:6565 helloworld.HelloWorldService/Greeting { "lang": "Java" } EOM |
EOM
您可以在Windows上输入Ctrl Z,在Unix上输入CtrlD。
在Windows命令提示符下,它显示为
执行该命令时,结果得到了出色的返回。
执行结果
1 2 3 4 5 6 7 8 | > grpcurl -plaintext -d @ localhost:6565 helloworld.HelloWorldService/Greeting { "lang": "Java" } ^Z { "message": "Hello Java World!" } |
奖金
如果要将结果输出到文件,则如下所示。
1 | grpcurl -plaintext localhost:6565 helloworld.HelloWorldService/Greeting > GreetingResult.json |
GreetingResult.json
1 2 3 | { "message": "Hello World!" } |
结束