(1)HTTP与RPC区别

定义

  • HTTP接口使用基于HTTP协议的URL传参调用
  • RPC接口则基于远程过程调用

http是一种协议 ,rpc是一种方法

RPC

RPC服务基本架构包含了四个核心的组件,分别是Client、Server、Clent Stub以及Server Stub。
(1)HTTP与RPC区别_第1张图片

  • Client (客户端):服务调用方、
  • Server(服务端):服务提供方。
  • Client Stub(客户端存根):存放服务端的地址消息,负责将客户端的请求参数打包成网络消息,然后通过网络发送给服务提供方。
  • Server Stub(服务端存根):接收客户端发送的消息,再将客户端请求参数打包成网络消息,然后通过网络远程发送给服务方。
流程RPC框架
  • gRPC Google公布 基于HTTP2.0协议 底层使用了Netty框架
  • Thrift Facebook
  • Dubbo 阿里集团

HTTP

通过HTTP URL调用的服务,浏览器访问本质上也算HTTP服务,不同的是需要客户端浏览器渲染服务端返回的结果。

HTTP与RPC区别

  1. 实现不同: RPC框架不是长连接,不必每次通信都要像HTTP那样三次握手,一般都有注册中心,RPC接口的发布、下线、动态扩展等对调用方是无感知的
  2. 传输协议不同:RPC可以基于TCP协议,也可以基于HTTP协议,HTTP只能基于HTTP协议
  3. 传输效率不同:RPC使用自定义的TCP协议,体积更小更快
  4. 性能消耗不同:RPC可以基于thrift实现高效的二进制传输,HTTP大部分是通过json实现的,字节大小和序列化耗时都比thrift要更消耗性能
  5. 负载均衡方式不同:RPC基本都自带了负载均衡策略,HTTP需要配置Nginx,HAProxy实现
  6. 服务治理(下游服务新增,重启,下线时如何不影响上游调用者):RPC能做到自动通知,不影响上游,HTTP需要事先通知,修改Nginx/HAProxy配置

你可能感兴趣的:(相关概念理清,http,rpc,dubbo)