gRPC之基本概念

基于google官方文档,附带一些自己的思考

服务(service)

gRPC可以定义四种服务

  • 简单的request-response
  • request-stream response,一般用于下载
  • stream request-response,一般用于上传
  • 双向流连接,HTTP2.0特性之一

使用gRPC

  • 服务器端实现服务器端的接口,服务器端处理的是对象
  • 客户端用客户端的接口发送请求,客户端传给服务器端的是对象
    总而言之,对于写业务代码的人,只需要处理业务对象即可,gRPC保证了对象的序列化问题,IDL用的是pb3.0(官方建议3.0,理论上用2.0也是可以的)

请求

gRPC支持同步请求和异步请求

gRPC连接细节

  • 当一个gRPC连接开始的时候,客户端先上传自己的metadata(相当于request包头),然后服务器可以选择马上返回自己的metadata(相当于reponse包头),或者等待客户端上传完包体再返回
  • 客户端可以声明自己的过期时间(deadline),然而此属性是依赖于客户端语言,例如python肯定有过期时间,但是并不是每个语言都有默认的过期时间
  • RPC的异步请求可以取消,同步请求不能取消(有点质疑)
  • gRPC的默认行为是可以改变的,例如是否压缩数据等
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,559评论 19 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,874评论 6 13
  • 一、概念(载录于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434阅读 12,696评论 6 152
  • Http协议详解 标签(空格分隔): Linux 声明:本片文章非原创,内容来源于博客园作者MIN飞翔的HTTP协...
    Sivin阅读 10,613评论 3 82
  • #幸福是需要修出来的~每天进步1%~幸福实修08班~8唐洁-富阳# 20170902(76/99) 【幸福三朵玫瑰...
    你谢谢阅读 1,150评论 2 4