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