dwtfukgv

Grpc Spring Boot Starter

特点

使用 Spring Boot 的应用进行自动配置,内嵌 gRPC server

支持 Spring Cloud (可以通过 Spring Cloud 进行服务注册并且获取 gRPC server 的信息)

支持 Spring Sleuth 进行应用跟踪

支持对于 server 、 client 分别设置全局拦截器或单个的拦截器

支持 keepalive

使用方式

gRPC 服务端

添加依赖如果使用的是 Maven

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

  

添加依赖如果使用的是 Gradle

dependencies {
  compile \'net.devh:grpc-server-spring-boot-starter:1.0.0.RELEASE\'
}

实现 Grpc 生成的接口,并使用 @GrpcService 注解

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

设置 gRPC 的 host 跟 port 在 application.properties ,默认的监听的 host 是 0.0.0.0 ,默认的 port 是 9090

grpc.server.port=
grpc.server.host=

gRPC 客户端

添加依赖如果使用的是 Maven

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

添加依赖如果使用的是 Gradle

dependencies {
  compile \'net.devh:grpc-client-spring-boot-starter:1.0.0.RELEASE\'
}

使用 @GrpcClient 注解去设置 Channel 或者 也可以通过 GrpcChannelFactory中的 createChannel 得到 Channel

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

gRPC request

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

设置 gRPC 服务器的 host 跟 port 在 application.properties ,默认的 host 是[127.0.0.1],默认的 port 是[9090]

grpc.client.(gRPC server name).host[0]=
grpc.client.(gRPC server name).port[0]=
转载:https://www.v2ex.com/t/343538

分类:

技术点:

相关文章:

  • 2021-08-16
  • 2021-10-28
  • 2022-12-23
  • 2021-09-20
  • 2021-09-04
  • 2021-12-05
猜你喜欢
  • 2022-12-23
  • 2021-12-08
  • 2022-12-23
  • 2022-12-23
  • 2021-07-14
  • 2021-09-01
相关资源
相似解决方案