今天这篇文章一看标题就比较特别,因为gRPC本身就是分布式微服务常用的一种通信方式,而我们又要探讨gRPC是如何进行通信的,那就是从源码层面来研究下gRPC服务端与客户端之间更为具体的通信方式,作为业界流行的高性能RPC框架,gRPC确实提供了多种通信方式,按照官方文档解释一共分为四种,分别是一元RPC、服务端流式RPC、客户端流式RPC和双向流式RPC,接下来我们就详细的介绍下这几种不同方式的概念与具体使用。

首先我们做一下概览,gRPC的四种通信方式(也叫服务方法):

方式 概念
一元RPC 最基本和最常用的RPC通信方式,传入一个请求对象,返回一个响应对象
服务端流式RPC 客户端传入一个请求对象,服务端返回多个响应对象
客户端流式RPC 客户端传入多个请求对象,服务端返回一个响应对象
双向流式RPC 客户端流式RPC和服务端流式RPC相结合,可以传入多个请求对象,返回多个响应对象

下面我们来逐个讲解:

一元RPC(Unary RPC)

最简单的RPC类型,其中客户机发送单个请求并返回单个响应。

  1. 一旦客户端调用了存根方法,服务器就会收到通知,RPC已被调用,并使用客户端此调用的元数据、方法名和指定的截止日期(如果适用)。
  2. 然后,服务器可以直接发送回自己的初始元数据

11服务方式:gRPC的四种服务方式相关推荐

  1. 外链引入css有哪些方式_CSS的四种引入方式

    CSS 的引入方式最常用的有三种, 第一:在 head 部分加入 rel="stylesheet" type="text/css" href="my. ...

  2. 简述css属性选择器的几种定义方式_css的四种使用方式 css规则按选择器类型分为那四种...

    HTML中嵌入CSS的四种方式及优先级,如何选择 1. 行内样式行内样式就是把 CSS 样式直接放在代码行内的标签中,一般都是放入标签的style属性中,由于行内样式直接插入标签中,故是最直接的一种方 ...

  3. 架构师之路 — 分布式系统 — gRPC 的 4 种服务定义及调用方式

    目录 文章目录 目录 gRPC 的服务定义 gRPC 的 4 种服务定义方式 单项 RPC 调用 服务端流式 RPC 调用 客户端流式 RPC 调用 双向流式 RPC 调用 gRPC 的服务定义 与其 ...

  4. java的rest教程_[Java教程]SpringMVC的REST风格的四种请求方式

    [Java教程]SpringMVC的REST风格的四种请求方式 0 2017-08-28 22:00:25 一. 在HTTP 协议里面,四个表示操作方式的动词:GET.POST.PUT.DELETE. ...

  5. java rest风格传参_SpringMVC的REST风格的四种请求方式总结

    一. 在HTTP 协议里面,四个表示操作方式的动词:GET.POST.PUT.DELETE. 它们分别对应四种基本操作: 1.GET ====== 获 取资源 2.POST ======新建资源 3. ...

  6. html中将scss转编译为css,SASS把scss转化为css的四种转化方式与命令

    在终端输入命令: $ sass --watch scss:css --style expanded 即可实时把scss文件夹下的scss文件转化为css文件放入css文件夹中, 命令中使用的是expa ...

  7. v-for的四种使用方式

    v-for的四种使用方式 v-for的四种使用方式 1.数组 2.在对象数组 3.对象 4.迭代数字 总结 v-for的四种使用方式 1.数组 在Vue中使用v-for遍历数组时v-for最常见的一种 ...

  8. grpc原理及四种实现方式

    文章目录 1. rpc概述 1.1 rpc和http区别 2. grpc介绍 调用过程 2.1. 使用原理 2.2 服务定义 2.3. 同步与异步 3. rpc的种类 3.1 一元 RPC 3.2 服 ...

  9. 科普|云计算的四种服务模式介绍

    科普|云计算的四种服务模式介绍 本文将介绍SaaS,BaaS,PaaS和IaaS这四种云计算服务模式,并分析之间的联系和区别. 四种服务模式介绍 SaaS(Software as a Service) ...

最新文章

  1. Ubuntu安装VSCode
  2. could not open parameter file init**.ora
  3. linux网络编程之并发服务器的三种实现模型 (超级经典)
  4. 【CodeForces - 289E 】Polo the Penguin and XOR operation (数学,异或,贪心)
  5. 主从复制中从库Last_SQL_Errno: 1062 错误
  6. 区分PO,VO,DAO,BO,POJO
  7. C++基础教程之重载运算符和重载函数
  8. poj1611(简答并查集)
  9. java不同项目加token访问_利用JWT实现前后端分离的Token验证
  10. VRRP技术原理与注意点
  11. 小程序点餐系统,外卖点餐系统源码
  12. 如何把用Word文档转换成PNG图片
  13. 在iOS应用中使用字体图标及制作字体库
  14. #幻方#明汯#九坤#鸣石#天演#进化论#佳期#量化研究员#C++#量化#量化私募#量化企业#量化投资#量化基金#机器学习#量化市场#量化期权#量化交易岗#量化数据岗#量化运维#量化可转债研究员#深
  15. hdfs大概流程和命令操作
  16. wget已连接但没有回应_林小宅新恋情曝光被指出轨,回应:分手后交往的,没对不起任何人...
  17. EAST的EPTC骗局
  18. 嵌入式开发人员,这些SRAM、SDRAM等存储技术,需要了解一下
  19. Android: 实测安卓10下无法获取MEID的解决办法(附smali代码)_20200928_七侠镇莫尛貝
  20. JavaScript-84:利用函数求任意两个数的和

热门文章

  1. 工银e生活开发脱坑日志(8)使用json_decode无法解析json,双引号才是json 的标准
  2. PTA 7-133 统计数字
  3. NEC解决方案助力中国建设智慧城市
  4. js对数组进行操作实现购物车效果
  5. 不起眼的暴利项目,月利润上万
  6. java opc da 连接 kepserver 报错 踩坑 解决办法
  7. 柔性力控打磨工具在打磨抛光领域的应用
  8. js jquery 获取节点
  9. 解决AndroidStudio编译出现的Lint
  10. python保留两位小数、不足两位补0_即使是0.00,如何保留小数点后2位