您现在的位置是:首页 >技术杂谈 >(1)HTTP与RPC区别网站首页技术杂谈
(1)HTTP与RPC区别
简介(1)HTTP与RPC区别
定义
- HTTP接口使用基于HTTP协议的URL传参调用
- RPC接口则基于远程过程调用
http是一种协议 ,rpc是一种方法
RPC
RPC服务基本架构包含了四个核心的组件,分别是Client、Server、Clent Stub以及Server Stub。
- Client (客户端):服务调用方、
- Server(服务端):服务提供方。
- Client Stub(客户端存根):存放服务端的地址消息,负责将客户端的请求参数打包成网络消息,然后通过网络发送给服务提供方。
- Server Stub(服务端存根):接收客户端发送的消息,再将客户端请求参数打包成网络消息,然后通过网络远程发送给服务方。
流程RPC框架
- gRPC Google公布 基于HTTP2.0协议 底层使用了Netty框架
- Thrift Facebook
- Dubbo 阿里集团
HTTP
通过HTTP URL调用的服务,浏览器访问本质上也算HTTP服务,不同的是需要客户端浏览器渲染服务端返回的结果。
HTTP与RPC区别
- 实现不同: RPC框架不是长连接,不必每次通信都要像HTTP那样三次握手,一般都有注册中心,RPC接口的发布、下线、动态扩展等对调用方是无感知的
- 传输协议不同:RPC可以基于TCP协议,也可以基于HTTP协议,HTTP只能基于HTTP协议
- 传输效率不同:RPC使用自定义的TCP协议,体积更小更快
- 性能消耗不同:RPC可以基于thrift实现高效的二进制传输,HTTP大部分是通过json实现的,字节大小和序列化耗时都比thrift要更消耗性能
- 负载均衡方式不同:RPC基本都自带了负载均衡策略,HTTP需要配置Nginx,HAProxy实现
- 服务治理(下游服务新增,重启,下线时如何不影响上游调用者):RPC能做到自动通知,不影响上游,HTTP需要事先通知,修改Nginx/HAProxy配置
- :
- :
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。