Wer irgendwelche Beispiele oder Gedanken mit gRPC zusammen mit Spring Boot?Verwenden von Spring Boot zusammen mit gRPC und Protobuf
Antwort
Wenn es noch für Sie relevant ist, habe ich gRPC Spring-Boot-Starter here erstellt.
grpc-Feder-boot-Starter automatisch konfiguriert und betreibt den eingebetteten gRPC Server mit @ Bohnen GRpcService-fähig ist.
Das einfachste Beispiel:
@GRpcService(grpcServiceOuterClass = GreeterGrpc.class)
public static class GreeterService implements GreeterGrpc.Greeter {
@Override
public void sayHello(GreeterOuterClass.HelloRequest request, StreamObserver<GreeterOuterClass.HelloReply> responseObserver) {
// omitted
}
}
Es gibt auch ein Beispiel dafür, wie die Starter mit Eureka in Readme-Datei des Projektes zu integrieren.
ab https://spring.io/blog/2015/03/22/using-google-protocol-buffers-with-spring-mvc-based-rest-services, dann
einen Blick auf SPR-13589 ProtobufHttpMessageConverter support for protobuf 3.0.0-beta4 und SPR-13203 HttpMessageConverter based on Protostuff library
zusammen, dass einige Unterstützung für proto3 ist im Frühjahr kommenden 5. Wie es unter einer Entwicklung gefördert wird, wählen und zu erhöhen, was wichtig für ihr Projekt.
https://github.com/WThamiara/gRpc-spring-boot-example ist das richtige Beispiel für diesen Fall, denke ich – wthamira
https://github.com/yidongnan/grpc-spring-boot-starter
In Server
@GrpcService(GreeterGrpc.class)
public class GrpcServerService extends GreeterGrpc.GreeterImplBase {
@Override
public void sayHello(HelloRequest req, StreamObserver<HelloReply> responseObserver) {
HelloReply reply = HelloReply.newBuilder().setMessage("Hello =============> " + req.getName()).build();
responseObserver.onNext(reply);
responseObserver.onCompleted();
}
}
Im Client
@GrpcClient("gRPC server name")
private Channel serverChannel;
GreeterGrpc.GreeterBlockingStub stub = GreeterGrpc.newBlockingStub(serverChannel);
HelloReply response = stub.sayHello(HelloRequest.newBuilder().setName(name).build());
In hier verwende ich gRpc und EUREKA für die Kommunikation. Dieses Projekt basiert auf Frühling-boot
https://github.com/WThamira/grpc-spring-boot
zusätzlich Canuse Sie als Konsul auch registrieren. vollständiges Beispiel in diesem Repo
https://github.com/WThamira/gRpc-spring-boot-example
diese Maven Abhängigkeit Hilfe gRpc
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-stub</artifactId>
<version>1.0.1</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-protobuf</artifactId>
<version>1.0.1</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty</artifactId>
<version>1.0.1</version>
</dependency>
und Plugin-Show müssen unten in
<plugin>
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<version>0.5.0</version>
<configuration>
<!-- The version of protoc must match protobuf-java. If you don't depend
on protobuf-java directly, you will be transitively depending on the protobuf-java
version that grpc depends on. -->
<protocArtifact>com.google.protobuf:protoc:3.0.2:exe:${os.detected.classifier}</protocArtifact>
<pluginId>grpc-java</pluginId>
<pluginArtifact>io.grpc:protoc-gen-grpc-java:1.0.1:exe:${os.detected.classifier}</pluginArtifact>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>compile-custom</goal>
</goals>
</execution>
</executions>
</plugin>
https://spring.io/blog/2015/03/22/using-google-protocol-buffers-mit-feder-mvc-based-rest-services ist wahrscheinlich eine gute lesung. –
Richtig, schon gefunden, dass man. Aber ich würde gerne wissen, ob jemand dies auch mit protobuf-Service-Definitionen verknüpft hat? – Markus
Auf der Suche nach einem Beispiel zu –