java版gRPC实战之五:双向流

本文介绍了如何在gRPC服务中使用双向流,包括在StockService中定义BatchDeduct方法,以及在SpringBoot环境中实现服务端和客户端的开发,涉及StreamObserver的使用和异步响应处理。
摘要由CSDN通过智能技术生成
  • 首先要做的就是定义gRPC接口,打开mall.proto,在里面新增方法和相关的数据结构,需要重点关注的是BatchDeduct方法的入参ProductOrder和返回值DeductReply都添加了stream修饰(ProductOrder是上一章定义的),代表该方法是双向流类型:

// gRPC服务,这是个在线商城的库存服务

service StockService {

// 双向流式:批量扣减库存

rpc BatchDeduct (stream ProductOrder) returns (stream DeductReply) {}

}

// 扣减库存返回结果的数据结构

message DeductReply {

// 返回码

int32 code = 1;

// 描述信息

string message = 2;

}

  • 双击下图红框中的task即可生成java代码:

在这里插入图片描述

  • 生成下图红框中的文件,即服务端定义和返回值数据结构:

在这里插入图片描述

  • 接下来开发服务端;

开发服务端应用

  • 在父工程grpc-turtorials下面新建名为double-stream-server-side的模块,其build.gradle内容如下:

// 使用springboot插件

plugins {

id ‘org.springframework.boot’

}

dependencies {

implementation ‘org.projectlombok:lombok’

implementation ‘org.springframework.boot:spring-boot-starter’

// 作为gRPC服务提供方,需要用到此库

implementation ‘net.devh:grpc-server-spring-boot-starter’

// 依赖自动生成源码的工程

implementation project(‘:grpc-lib’)

// annotationProcessor不会传递,使用了lombok生成代码的模块,需要自己声明annotationProcessor

annotationProcessor ‘org.projectlombok:lombok’

}

  • 配置文件application.yml
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值