在 Spring Boot 中使用 gRPC 进行通讯(二) - 构造服务端

上一篇文章,我们使用 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

完成以上步骤后就可以启动服务。

下一步

下一步 中,我们将构建访问本服务的客户端。

本文标题:在 Spring Boot 中使用 gRPC 进行通讯(二) - 构造服务端

文章作者:Morning Star

发布时间:2020年01月16日 - 20:01

最后更新:2021年04月16日 - 15:04

原始链接:https://www.mls-tech.info/java/springboot-use-grpc-02/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。