Wie kann ich den Betrieb des gRPC-Servers überprüfen? .. .. Wir stellen die Grpcurl vor, zu der ich gekommen bin, nachdem ich verschiedene Dinge untersucht habe. Es scheint, dass es verschiedene Funktionen gibt, von denen jedoch nur einige eingeführt werden.
** Bestätigte Umgebung **
gRPC-Serverkonfiguration
Entwicklungsumgebung
https://github.com/fullstorydev/grpcurl Es ist ein Tool, das die Interaktion mit dem gRPC-Server wie ein Curl-Befehl realisieren kann. Wenn Sie den Befehl ausführen, wird die Antwort des gRPC-Servers im JSON-Format zurückgegeben.
Details sind in dem Link geschrieben, also denke ich, dass Sie es einfach lesen können.
Sie müssen go installieren.
** Download-Installation ** https://golang.org/dl/ Bitte laden Sie die für Ihre Umgebung geeignete von dieser Website herunter. Unter Windows können Sie es problemlos ausführen, indem Sie den Anweisungen des Installationsprogramms folgen.
** Einstellungen überprüfen ** Für Windows wurden den Umgebungsvariablen Folgendes hinzugefügt:
** Installationsbestätigung **
Geben Sie an der Eingabeaufforderung go version ein. Wenn die Versionsinformationen angezeigt werden, ist die Installation abgeschlossen.
> go version
** Download-Installation **
Sie müssen lediglich den folgenden Befehl ausführen.
> go get github.com/fullstorydev/grpcurl
> go install github.com/fullstorydev/grpcurl/cmd/grpcurl
Der Befehl grpcurl wird im Unterordner bin des Speicherorts installiert, der in der zuvor bestätigten Umgebungsvariablen $ GOPATH angegeben ist. Standardmäßig ist% GOPATH% bin für Path angegeben, sodass Sie es sofort an der Eingabeaufforderung ausführen können sollten. Wenn Sie es nicht ausführen können, überprüfen Sie bitte die Pfadangabe.
** Installationsbestätigung **
Wenn Sie den folgenden Befehl ausführen können, ist die Installation von grpcurl abgeschlossen.
> grpcurl -help
Aktivieren Sie die Reflektionsfunktion auf dem gRPC-Server.
Wenn Sie grpc-spring-boot-Starter verwenden, fügen Sie einfach die folgenden Einstellungen zu application.yml hinzu.
application.yml
grpc:
enable-reflection: true
Hinweis: Wird von einigen Versionen von grpc-spring-boot-Starter nicht unterstützt. (2.3.2 ~)
Wenn Sie keinen Starter verwenden, können Sie die folgenden Schritte ausführen. (unbestätigt) https://github.com/grpc/grpc-java/blob/master/documentation/server-reflection-tutorial.md
Jetzt können Sie loslegen.
// coming soon ...
Starten Sie den gRPC-Server, um den Betrieb zu überprüfen.
> grpcurl -plaintext localhost:6565 list
-plaintext Sie können den Vorgang im Nur-Text-Modus überprüfen. Wenn nicht angegeben, kann dies von TLS bestätigt werden.
localhost:6565 Geben Sie den Hostnamen und die Portnummer des gRPC-Servers an.
Bei der Ausführung wird die Liste der Dienste auf der Serverseite wie unten gezeigt angezeigt.
Ausführungsergebnis
> grpcurl -plaintext localhost:6565 list
helloworld.HelloWorldService
goodbyeworld.GoodByeWorldService
grpc.health.v1.Health
grpc.reflection.v1alpha.ServerReflection
> grpcurl -plaintext localhost:6565 list helloworld.HelloWorldService
helloworld.HelloWorldService Geben Sie den Dienstnamen nach dem Befehl an, um die Dienstliste abzurufen.
Ausführungsergebnis
> grpcurl -plaintext localhost:6565 list helloworld.HelloWorldService
Greeting
> grpcurl -plaintext localhost:6565 helloworld.HelloWorldService/Greeting
helloworld.HelloWorldService/Greeting Geben Sie den in der Liste bestätigten Dienstnamen / Methodennamen an.
Bei der Ausführung wird das Ergebnis im JSON-Format angezeigt.
Ausführungsergebnis
> grpcurl -plaintext localhost:6565 helloworld.HelloWorldService/Greeting
{
"message": "Hello World!"
}
> grpcurl -plaintext -d '{"lang":"Java"}' localhost:6565 helloworld.HelloWorldService/Greeting
Sie können die Parameter im json-Format nach -d schreiben. Es wurde auf der Website geschrieben, aber es hat nicht funktioniert, weil das einfache Zitat wütend war: cold_sweat :. Deshalb. .. ..
> grpcurl -plaintext -d @ localhost:6565 helloworld.HelloWorldService/Greeting
Ich habe dies versucht, weil die Methode eingeführt wurde, mit der Sie den Parameter mit STDIN eingeben können, indem Sie '@' angeben, nachdem -d.
> grpcurl -plaintext -d @ localhost:6565 helloworld.HelloWorldService/Greeting
{
"lang": "Java"
}
EOM
EOM Sie können unter Windows mit Strg + Z und unter Unix mit Strg + D eingeben. Es wird an der Windows-Eingabeaufforderung als "^ Z" angezeigt.
Als ich es lief, war das Ergebnis ausgezeichnet. : entspannt:
Ausführungsergebnis
> grpcurl -plaintext -d @ localhost:6565 helloworld.HelloWorldService/Greeting
{
"lang": "Java"
}
^Z
{
"message": "Hello Java World!"
}
Wenn Sie das Ergebnis als Datei ausgeben möchten, sieht es so aus.
grpcurl -plaintext localhost:6565 helloworld.HelloWorldService/Greeting > GreetingResult.json
GreetingResult.json
{
"message": "Hello World!"
}
Ende
Recommended Posts