在 上一篇文章,我们使用 Protobuf IDL 定义了 AcccountHistory 接口, 本文将针对该接口实现服务端与客户端。
建立项目
使用 Spring Boot Start建立一个名为: account-grpc-server 的项目:
groupId: cn.com.hohistar.training
artifactId: account-grpc-server
选择 Web 和 Lombok 两个依赖。下载后将项目导入 IDEA 或 Eclipse 中(Maven 项目类型)。然后打开 pom.xml 文件,加入以下依赖:
1 2 3 4 5 6 7 8 9 10 11
| <dependency> <groupId>net.devh</groupId> <artifactId>grpc-server-spring-boot-starter</artifactId> <version>2.6.1.RELEASE</version> </dependency>
<dependency> <groupId>cn.com.hohistar.spbt</groupId> <artifactId>account-grpc-intf</artifactId> <version>1.0-SNAPSHOT</version> </dependency>
|
第二个依赖就是我们在上一篇文章中建立的接口库
实现 GRPC 服务
在 src/main/java 下新建一个名为: cn.com.hohistar.training.accountgrpcserver.grpc 的包,在包中新建名为: AccountHistorySrv 的类, 代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| @GrpcService public class AccountHistorySrv extends AccountHistoryServiceGrpc.AccountHistoryServiceImplBase {
private static final Logger LOG = LoggerFactory.getLogger(AccountHistorySrv.class);
@Override public void handleOrder(AccountHistoryRequest request, StreamObserver<AccountHistoryResponse> responseObserver) {
LOG.debug("call handleORder, request = {}", request);
AccountHistoryResponse resp = AccountHistoryResponse.newBuilder() .setResult("ok") .build(); responseObserver.onNext(resp); responseObserver.onCompleted(); } }
|
将 src/main/resources 中的 application.properties 改名为: application.yml,并加入以下内容:
1 2 3 4 5 6 7
| logging: level: cn.com.hohistar.training.accountgrpcserver: DEBUG
spring: main: web-application-type: NONE
|
完成以上步骤后就可以启动服务。
下一步
在 下一步 中,我们将构建访问本服务的客户端。