java版gRPC实战之五:双向流

本文是关于Java版gRPC的实战教程,聚焦于双向流的实现。通过源码下载,介绍如何在proto文件中定义双向流类型的gRPC接口,并分别展示了如何开发服务端和客户端应用。在服务端,创建了GrpcServerService,处理批量扣减库存的双向流请求。在客户端,使用Spring Boot和gRPC客户端库进行远程调用,实现了异步响应的处理。
摘要由CSDN通过智能技术生成
  1. 开发客户端应用

  2. 验证

源码下载

  • 本篇实战中的完整源码可在GitHub下载到,地址和链接信息如下表所示(https://github.com/zq2599/blog_demos):

| 名称 | 链接 | 备注 |

| :-- | :-- | :-- |

| 项目主页 | https://github.com/zq2599/blog_demos | 该项目在GitHub上的主页 |

| git仓库地址(https) | https://github.com/zq2599/blog_demos.git | 该项目源码的仓库地址,https协议 |

| git仓库地址(ssh) | git@github.com:zq2599/blog_demos.git | 该项目源码的仓库地址,ssh协议 |

  • 这个git项目中有多个文件夹,《java版gRPC实战》系列的源码在grpc-tutorials文件夹下,如下图红框所示:

在这里插入图片描述

  • grpc-tutorials文件夹下有多个目录,本篇文章对应的服务端代码在double-stream-server-side目录下,客户端代码在double-stream-client-side目录下,如下图:

在这里插入图片描述

在proto文件中定义双向流类型的gRPC接口

  • 首先要做的就是定义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内容如下:

// 使用sprin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值