Spring Boot的gRPC启动器

18-12-25 banq
         

gRPC Spring Boot Starter特点:

  • 使用@ GrpcService自动创建并运行一个 gRPC 服务,内嵌在 spring-boot 应用中
  • 使用@ GrpcClient自动创建和管理你的channel和stub
  • 支持 Spring Cloud(向Consul或Eureka注册服务并获取gRPC服务器信息)
  • 支持 Spring Sleuth 进行链路跟踪
  • 支持对于 server、client 分别设置全局拦截器或单个的拦截器
  • 支持 Spring-Security
  • 支持 metric (micrometer / actuator)
  • 可以使用 grpc-netty-shaded

gRPC server + client:

<dependency>
  <groupId>net.devh</groupId>
  <artifactId>grpc-spring-boot-starter</artifactId>
  <version>2.2.0.RELEASE</version>
</dependency>

实现 gRPC server 的业务逻辑,并使用 @GrpcService 注解

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