有没有人有将GRPC和Spring Boot结合使用的例子或想法?
kmb7vmvb1#
如果它仍然与您相关,我已经创建了GRPC Spring-Boot-starter here。
最简单的例子是:
@GRpcService(grpcServiceOuterClass = GreeterGrpc.class) public static class GreeterService implements GreeterGrpc.Greeter { @Override public void sayHello(GreeterOuterClass.HelloRequest request, StreamObserver<GreeterOuterClass.HelloReply> responseObserver) { // omitted } }
在项目的自述文件中还有一个如何将Starter与Eureka集成的示例。
nr7wwzry2#
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());
ql3eal8s3#
如果您需要GRPC客户端库,即使用存根,请查看我的库https://github.com/sfcodes/grpc-client-spring-boot
该库将自动扫描您的类路径,找到所有GRPC存根类,示例化它们,并使用ApplicationContext将它们注册为Bean;允许您像注入任何其他Spring Bean一样轻松地@Autowire和注入它们。例如:
@Autowire
@RestController public class GreeterController { @Autowired // <===== gRPC stub is autowired! private GreeterGrpc.GreeterBlockingStub greeterStub; @RequestMapping(value = "/sayhello") public String sayHello(@RequestParam String name) { HelloRequest request = HelloRequest.newBuilder().setName(name).build(); HelloReply reply = greeterStub.sayHello(request); return reply.getMessage(); } }
对于GRPC服务器库,我也推荐LogNet/grpc-spring-boot-starter。
LogNet/grpc-spring-boot-starter
g6baxovj4#
从https://spring.io/blog/2015/03/22/using-google-protocol-buffers-with-spring-mvc-based-rest-services开始,然后查看SPR-13589 ProtobufHttpMessageConverter support for protobuf 3.0.0-beta4和相关的SPR-13203 HttpMessageConverter based on Protostuff library
这就是说,对Proto3的一些支持将在Spring 5中到来。因为它还在开发中,所以鼓励人们投票并提出对他们的项目重要的东西。
4条答案
按热度按时间kmb7vmvb1#
如果它仍然与您相关,我已经创建了GRPC Spring-Boot-starter here。
最简单的例子是:
在项目的自述文件中还有一个如何将Starter与Eureka集成的示例。
nr7wwzry2#
https://github.com/yidongnan/grpc-spring-boot-starter
在服务器中
在客户端中
ql3eal8s3#
如果您需要GRPC客户端库,即使用存根,请查看我的库https://github.com/sfcodes/grpc-client-spring-boot
该库将自动扫描您的类路径,找到所有GRPC存根类,示例化它们,并使用ApplicationContext将它们注册为Bean;允许您像注入任何其他Spring Bean一样轻松地
@Autowire
和注入它们。例如:对于GRPC服务器库,我也推荐
LogNet/grpc-spring-boot-starter
。g6baxovj4#
从https://spring.io/blog/2015/03/22/using-google-protocol-buffers-with-spring-mvc-based-rest-services开始,然后
查看SPR-13589 ProtobufHttpMessageConverter support for protobuf 3.0.0-beta4和相关的SPR-13203 HttpMessageConverter based on Protostuff library
这就是说,对Proto3的一些支持将在Spring 5中到来。因为它还在开发中,所以鼓励人们投票并提出对他们的项目重要的东西。