Любой, кто имеет какие-либо примеры или мысли, используя gRPC вместе с Spring Boot?
Использование Spring Загрузка вместе с gRPC и Protobuf
Ответ 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>