gRPC学习笔记(一):gRPC简述 - Go语言中文社区

gRPC学习笔记(一):gRPC简述


gRPC学习笔记(一):gRPC是什么,有什么优缺点,为什么要使用它

概述

RPC(远程过程调用: Remote Procedure Call)是一种通过网络从其它进程或者其他主机上的进程请求服务的方式。RPC是分布式系统的基础。
gRPC是主要由Google公司开发的一个高性能、通用的开源RPC框架。gRPC基于HTTP2.0协议,基于protobuf序列化协议,语言中立、平台中立。

在这里插入图片描述

HTTP1.0与HTTP2.0的区别

HTTP1.0协议:
  1. 是文本协议,可读性好,但并不高效
  2. 一问一答的交互模式,request 之后,必须等到 response才能下一次请求,而且每次请求都要携带冗长重复的请求头信息
  3. 没有推送机制,只能通过长轮询之类的方式,浪费资源。除非用webSocket协议方式。
HTTP2.0协议:
  1. 二进制协议,可读性巨差,有更小的传输体积,解析也不容易出错。
  2. 多路复用,允许一个HTTP2.0连接发起多重请求和响应,可以实现多个流并行,却不用建立多个TCP连接。
  3. 首部压缩,HTTP2.0依旧是无状态协议,HTTP2.0使用首部表来跟踪存储之前发送的键值对,对于相同的数据,不再通过请求发送,修改时只需发送一次。
  4. 服务端推送,可以通过流从服务端直接推送给客户端,即使客户端没有请求这些数据。

序列化协议protobuf

gRPC服务是基于protocuf定义的。
优点:

  1. protobuf是二进制协议,性能好、效率高,节约网络带宽
  2. 生成目标代码,简单易用
  3. 序列化和反序列化直接对应其中的类或结构体
  4. 支持版本兼容
  5. 支持多种语言
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/aiyaiyayayaya/article/details/106223426
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢