热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AtourofgRPC:05-gRPCserverstraming服务端流:GRPC服务

本文主要分享【GRPC服务】,技术文章【AtourofgRPC:05-gRPCserverstraming服务端流】为【BUG_zhentan】投稿,如果你遇到侦探工作笔记,Atou

本文主要分享【GRPC服务】,技术文章【A tour of gRPC:05 - gRPC server straming 服务端流】为【BUG_zhentan】投稿,如果你遇到侦探工作笔记,A tour of gRPC相关问题,本文相关知识或能到你。

GRPC服务

在上一篇中,我们实现了gRPC中的unary call,即客户端发一个请求,服务端回复一个响应。并尝试了 它在跨语言的情型下调用。在本篇中,我们将尝试实现 server straming 即客户端发送一个请求,服务 端回复多个响应,并同样尝试跨语言的调用。

go server straming call

1. 添加filter_message.proto 用于描述筛选条件。

​2. 修改laptop_service.proto 添加 一个搜索的 service。

​3. 运行 make clean 和 make gen 生成代码

4. 在laptop_store.go 在 LaptopStore 接口中添加 Search 函数,并添加相应实现。(因为深拷⻉多次使用,这里抽出一个函数)

​5. 在laptop_server.go 中添加 SearchLaptop 方法

​6. 将 client 包下的 main.go 中的 createLaptop 逻辑抽出来,并在main函数中利用 for 创建10个; 添加一个过滤条件

​7. make server运行服务器 make client 运行客户端,查看结果,运行正常

​可以观察到,在创建了10个Laptop,接收了筛选条件后,server 会检查逐条检查map中的数据,如果 符合,则返回一条,即结果分多次逐条返回。

Java server straming call

1. 将 gRpc go Straming 中编写的filter_message.proto和 laptop_service.protp 文件拷⻉ 至 Java 项目的 proto 文件夹中,并运行 mvn clean 和 mvn comple

2. 在LaptopStore 接口中新增 search 方法

3. 新增一个接口LaptopStream 其只有一个 send 方法

​4. 在InMemoryLaptopStore 中实现上面新增的 search 方法

​5. 在LaptopService 编写一个 searchLaptop 方法作作为服务端的实现。

​6. 接下来实现LaptopClient 中实现客户端逻辑,增加一个 SearchLaptop 方法。

​7. 修改 LaptopClient 中的main方法,先创建10个Laptop再进行过滤查询

​运行server 再运行 client

​可以观察到,server的结果是多次返回的,这也是 server straming 的特性。

跨语言的 server straming call 测试

我们先运行Java 的 server 再运行 golang 的client。

​再反过来,运行 golang 的 server 和 Java 的 client。

​运行的结果符合预期,并且符合 server straming 的特性。



 

本文《A tour of gRPC:05 - gRPC server straming 服务端流》版权归BUG_zhentan所有,引用A tour of gRPC:05 - gRPC server straming 服务端流需遵循CC 4.0 BY-SA版权协议。


推荐阅读
  • 微服务之总体架构篇
    一、单体架构存在的问题缺点:1、难以维护:当单体应用业务不断迭代后代码量非常臃肿,模整个项目非常复杂,每次更改代码都可能带来新的bug;2、部署项目麻烦:庞大之后项目部署效率 ... [详细]
  • 阿里云监控URL的配置笔记
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了阿里云监控URL的配置笔记相关的知识,希望对你有一定的参考价值。有很多细节需要记录 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • 本文介绍了DataTables插件的官方网站以及其基本特点和使用方法,包括分页处理、数据过滤、数据排序、数据类型检测、列宽度自动适应、CSS定制样式、隐藏列等功能。同时还介绍了其易用性、可扩展性和灵活性,以及国际化和动态创建表格的功能。此外,还提供了参数初始化和延迟加载的示例代码。 ... [详细]
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼*madebyebhrz*#include#include#include#include#include#include#include ... [详细]
  • [翻译]微服务设计模式5. 服务发现服务端服务发现
    服务之间需要互相调用,在单体架构中,服务之间的互相调用直接通过编程语言层面的方法调用就搞定了。在传统的分布式应用的部署中,服务地 ... [详细]
  • centos6.8 下nginx1.10 安装 ... [详细]
  • 精讲代理设计模式
    代理设计模式为其他对象提供一种代理以控制对这个对象的访问。代理模式实现原理代理模式主要包含三个角色,即抽象主题角色(Subject)、委托类角色(被代理角色ÿ ... [详细]
  • 项目需要将音视频文件上传服务器,考虑并发要求高,通过七牛来实现。直接上代码usingQiniu.IO;usingQiniu.IO.Resumable;usingQiniu.RPC; ... [详细]
  • SOA架构理解理解SOA架构,了解ESB概念,明白SOA与微服务的区别和联系,了解SOA与热门技术的结合与应用。1、面向服务的架构SOASOA(ServiceOrien ... [详细]
  • 本文为转载,原连接:https:www.zhihu.comquestion40822826简单说一下吧做要解释这些要从netconf说起。netconf ... [详细]
  • 阿里首席架构师科普RPC框架
    RPC概念及分类RPC全称为RemoteProcedureCall,翻译过来为“远程过程调用”。目前,主流的平台中都支持各种远程调用技术,以满足分布式系统架构中不同的系统之间的远程 ... [详细]
  • 在这分布式系统架构盛行的时代,很多互联网大佬公司开源出自己的分布式RPC系统框架,例如:阿里的dubbo,谷歌的gRPC,apache的Thrift。而在我们公司一直都在推荐使用d ... [详细]
  • 分布式服务框架和原理简章
    应用架构演进这里的架构演进应该是从服务化的角度来说,应该说随着业务发展,应用规模扩大,系统的一些公共服务就会抽取出来,独立开发,部署,维护,用来解决并发,扩展,维护的问题。传统垂直 ... [详细]
author-avatar
自由就是幸2602880665
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有