RPC与HTTP的区别

转自:http://www.javashuo.com/article/p-ohyhqoxw-ms.htmlhtml

1. RPC API和RESTful APIjson

 

 (1)RPC面向过程:内部调用建议RPC浏览器

(2)RESTful 面向资源:对外开发推荐RESTful网络

RPC远程调用不必定跨网络,同一台主机的两个进程直接也能够是RPC。REST就是一种RPC负载均衡

RPC能够经过http也能够直接走socket。 选用http,是因为其更通用。socket

2. RPC与HTTP的不一样特色微服务

2.1 传输协议性能

(1)RPC:基于TCP,也可基于HTTPspa

(2)HTTP:基于HTTPhtm

2.2传输效率

(1)自定义TCP协议,报文小。 若是基于HTTP2协议,也可减少报文,提升传输效率

(2)基于HTTP1.1协议,报文有不少无用内容,传输效率低

2.3 性能消耗,主要在于序列化和反序列化的耗时

(1)RPC,能够基于thrift实现高效二进制传输

(2)HTTP,大部分是json实现,字节大小和序列化耗时逗比thrift更消耗性能

2.4负载均衡

(1)RPC自带负载均衡策略

(2)HTTP,须要配置Nginx,HAProxy来实现

2.5服务治理

(1)RPC,自动通知

(2)HTTP,事先通知,修改Nginx/HAProxy配置

3.总结

(1)RPC:用于公司内部服务调用,性能消耗低,传输效率高,服务治理方便。 实现负载,适用于开发过程使用同一的技术栈

(2)HTTP:用于对外的异构环境,浏览器接口调用,APP接口调用,第三方接口调用。实现简单,更加灵活,跨语言,跨平台

微服务,强调的是独立、自治、灵活。而RPC方式限制多,所以微服务经常使用基于http的Rest风格服务。

相关文章
相关标签/搜索