项目 grpc http

项目

1.什么是http、rpc和grpc?

什么是http?
http 是一个协议,超文本传输协议,基于TCP/IP来传输文本、图片、视频和音频等。
http是浏览器和服务器的通信交互的协议。本质上是客户端和服务器约定好的一种通信格式。在http中规定请求有:请求行、请求报头、请求体;响应有:状态行、响应报头、响应体。

什么是rpc?
rpc(远程过程调用,服务调用。常见的方式是REST)。对应的是本地调用。
rpc的通信可以使用http协议,也可以自定义协议,是不做约束的。在现如今的微服务中,根据业务拆分成许多个服务,服务与服务之间的调用使用rpc。
在这里插入图片描述
比如说在项目中用户模拟交易服务是客户端,任务服务是服务端,之间的交互可以使用http这个格式,也可以使用自定义的格式。
rpc适合公司内部多个服务之间的通信,使用rpc能够屏蔽掉底层细节,即使服务拆分,但使用起来和之前的本地调用一样方便。
http是工作在http协议之上的,而http协议是在传输层tcp协议之上的,整个通信代价就比较大,效率较低。rpc是工作在tcp协议之上的,效率更高。
常用的rpc框架:dubbo、grpc、Hessian

什么是grpc?
grpc是google发布的基于http2.0的、与语言无关的远程过程调用框架。
①使用到了http2.0协议
②使用protobuf协议进行数据编码,提高了数据压缩率。
具体来说:双方维护一个.proto结尾的协议约束文件,使用proto文件命令对文件解析生成对应的stub程序,客户端和服务端都需要保存这份stub程序来进行编码、解码。
对比http:在http中使用JSON等文本形式传输,protobuf使用二进制传输能够有几十倍空间和性能提升;protobuf协议会维护.proto文件,解析文件生成Stub程序时,可对方法名编号,传输的时候只传编号,不需要传方法的名字,这样又可以节省大量字节。

rpc与grpc?
grpc是一个rpc框架,功能比rpc更强。普通rpc定义是一应一答的单项通信模式,grpc支持双向通信。
grpc有四种请求/响应模式:
①简单模式
客户端发起请求,服务端响应一个数据,这是标准的rpc通信。
②服务端数据流模式
客户端发起一次请求,服务端返回一段连续的数据流。
③客户端数据流模式
客户端向服务端发送数据流,发送结束后,由服务端返回一个响应。
④双向数据流模式
客户端和服务端都可以向双方发送数据流,这时双方的数据可以同时互相发送,实现实时交互,例如聊天应用。

http比较低效:http请求会带一大堆报文信息;http会频繁建立和断开连接,消耗资源。
rpc:rpc通信不会携带很多报文信息;客户端和服务器端之间的通信基本上为长连接或者连接复用等来避免建立连接和断开连接等情况。
总之,rpc框架适用于后端服务数据通信频繁的场景。通信少时rpc和http都可以。

参考:http,rpc,grpc区别
https://zhuanlan.zhihu.com/p/148139089
https://www.jianshu.com/p/fe5ccfc5d7bd?utm_campaign=haruki&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

参考:http1.0、1.1、 2的区别
https://www.cnblogs.com/heluan/p/8620312.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值