私人定制和模板货(RPC和Http的区别)

先报答案:RPC框架中TCP内容=我们自定义的规则;HTTP就是通用规则。(个人理解)

初期理解RPC就是个封装好的远程调用框架,Http就是没封装好的。所以RPC是个封装好的Http?

什么是RPC

RPC全称为remote procedure call,即远程过程调用。借助RPC可以做到像本地调用一样调用远程服务,是一种进程间的通信方式。


四个核心的组件:客户端,客户端存根,服务器,服务器存根

客户端(Client),服务的调用方。

客户端存根(Client Stub),存放服务端的地址消息,再将客户端的请求参数打包成网络消息,然后通过网络远程发送给服务方。

服务端(Server),真正的服务提供者。

服务端存根(Server Stub),接收客户端发送过来的消息,将消息解包,并调用本地的方法。



Http协议

HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用。

      HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。

就是前端常用的,调用接口然后拿到返回值。

TCP又是什么?

TCP传输协议

顾名思义TCP是用来传数据的。

他们是一层套一层的。

IP头+IP内容

IP内容=TCP头+TCP内容

TCP内容=Http头+Http内容(这里面就是熟悉的request 和response)

IP头就是IP地址了,要发到哪去。

TCP头是用来维持数据包的顺序,顺序乱了就没意义了。

结论

现在比较流行的RPC框架,都会采用TCP作为底层传输协议。

所以RPC框架中TCP内容=我们自定义的规则;HTTP就是通用规则。

区别就很好理解了,自己定制的规则肯定比通用的更快更安全,但是有局限性。


但是第一代springcloud Netflflix(就是做视频那个耐飞)中服务调⽤的feign又是通过http实现的,

而第二代 Spring Cloud(Spring Cloud Alibaba)又用上了dubbo是RPC,所以他们之间的差别是不是比我想象的要小很多?

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容