2015-08-11 10 views
19

Ktoś ma jakieś przykłady lub myśli używając gRPC razem z Spring Boot?Używanie Spring Boot razem z gRPC i Protobuf

+3

https://spring.io/blog/2015/03/22/using-google-protocol-buffers-with-spring-mvc-based-rest-services to prawdopodobnie dobra lektura. –

+0

Prawda, już to znalazłem. Ale chciałbym się dowiedzieć, czy ktoś powiązał to z definicjami usług protobuf? – Markus

+0

Poszukuję też przykładu: –

Odpowiedz

16

Jeśli nadal jest to dla ciebie istotne, stworzyłem sprężynę rozruchową gRPC here.

grpc sprężynowym rozruchu rozrusznik auto konfiguruje i uruchamia wbudowany serwer gRPC z @ GRpcService obsługującej fasoli.

Najprostszy przykład:

@GRpcService(grpcServiceOuterClass = GreeterGrpc.class) 
public static class GreeterService implements GreeterGrpc.Greeter { 

    @Override 
    public void sayHello(GreeterOuterClass.HelloRequest request, StreamObserver<GreeterOuterClass.HelloReply> responseObserver) { 
     // omitted 
    } 

} 

Jest też przykładem, jak zintegrować rozrusznik z Eureka w pliku README projektu.

2

Począwszy od https://spring.io/blog/2015/03/22/using-google-protocol-buffers-with-spring-mvc-based-rest-services, następnie
przyjrzeć SPR-13589 ProtobufHttpMessageConverter support for protobuf 3.0.0-beta4 i związane SPR-13203 HttpMessageConverter based on Protostuff library

czyli pewne wsparcie dla proto3 nadchodzi wiosną 5. Jak to jest w fazie rozwoju jednej zachęca do głosowania i podnieść to, co jest ważne dla ich projektu.

+0

https://github.com/WThamira/gRpc-spring-boot-example jest poprawnym przykładem dla tego przypadku, myślę, że – wthamira

0

https://github.com/yidongnan/grpc-spring-boot-starter

W serwerze

@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(); 
    } 
} 

klient

@GrpcClient("gRPC server name") 
private Channel serverChannel; 

GreeterGrpc.GreeterBlockingStub stub = GreeterGrpc.newBlockingStub(serverChannel); 
HelloReply response = stub.sayHello(HelloRequest.newBuilder().setName(name).build()); 
0

Tu używam gRpc i eureka do komunikacji. Projekt ten opiera się na wiosennym-boot

https://github.com/WThamira/grpc-spring-boot

dodatkowo canuse zarejestrować się jako konsul również. pełny przykład w tym repo

https://github.com/WThamira/gRpc-spring-boot-example

to Maven zależność pomagają 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> 

i potrzebujesz wtyczki pokaz w poniższej

 <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>