HTTP通信和RPC通信两种通讯协议的不同

首先来回顾一下计算机网络的七层协议:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。

TCP属于传输层协议

HTTP是建立在tcp之上的应用层协议

 

SOCKET

socket是针对tcp或udp的具体接口实现,提供了在传输层进行网络编程的方法

 

RPC

RPC(Remote Procedure Call:远程过程调用):一种进程间通信方式。允许像调用本地服务一样调用远程服务

 

RPC架构

包含四个核心组件

 

客户端(client):服务的调用方

服务端(server):服务提供方

客户端存根(client stub,即,助手):将客户端请求参数打包成网络消息,再发给服务方

服务端存根(server stub,即,助手):接收客户端发来的消息,将消息解包,并调用本地方法

 

 

同步调用与异步调用

同步调用就是:客户端等待调用执行完成并返回结果,中间不能去干别的事情。优点是时序清晰,逻辑简单;缺点是网络通讯的延迟会制约请求响应速度

异步调用就是:客户端不用等待调用执行完成返回结果,请求发出之后就可以干别的事情了。定义一个callback接口用于接收服务端向客户端返回的响应

 

总结

RPC主要基于TCP/UDP协议;

HTTP协议是应用层协议,是构建在传输层协议TCP之上的;

从效率来看的话RPC更胜一筹!

RPC长连接:不必每次通信都像http一样去三次握手,减少网络开销;

HTTP服务开发迭代更快:在接口不多,系统与系统之间交互比较少的情况下,http就显得更加方便;相反,在接口比较多,系统与系统之间交互比较多的情况下,http就没有RPC有优势。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值