美文网首页
HTTP通信与RPC通信

HTTP通信与RPC通信

作者: 没睡醒的鱼 | 来源:发表于2018-06-25 18:29 被阅读10次

    HTTP

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

    • 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有优势

    相关文章

      网友评论

          本文标题:HTTP通信与RPC通信

          本文链接:https://www.haomeiwen.com/subject/smvyeftx.html