Подтвердить что ты не робот

Использование Spring Загрузка вместе с gRPC и Protobuf

Любой, кто имеет какие-либо примеры или мысли, используя gRPC вместе с Spring Boot?

4b9b3361

Ответ 1

Если это все еще актуально для вас, я создал gRPC spring -boot-starter здесь.

grpc- spring -boot-startter автоматически настраивает и запускает встроенный сервер gRPC с поддержкой @GRpcService beans.

Самый простой пример:

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

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

}

Также есть пример того, как интегрировать стартер с Eureka в файл проекта README.

Ответ 2

Начиная с https://spring.io/blog/2015/03/22/using-google-protocol-buffers-with-spring-mvc-based-rest-services, затем
Взгляни на SPR-13589 Поддержка ProtobufHttpMessageConverter для protobuf 3.0.0-beta4 и связанных с ними SPR-13203 HttpMessageConverter на основе библиотеки Protostuff

Это некоторая поддержка proto3 входит в Spring 5. Поскольку она находится в стадии разработки, рекомендуется голосовать и поднимать то, что важно для их проекта.

Ответ 3

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

В сервере

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

В клиенте

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

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

Ответ 4

Здесь я использую gRpc и eureka для связи. Этот проект основан на Spring -boot

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

Кроме того, вы можете также зарегистрироваться как консул. полный пример в этом репо

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

эта помощь зависимостей maven для 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>

и вам нужно показать плагин ниже

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