rpc和http的区别是什么 各自的优缺点有哪些(赵剑)
Http是指从客户端到服务器的请求消息,rpc是远程过程调用协议,它们之间有什么区别?以下是边肖整理的相关内容,希望对大家有所帮助!
rpc和http的区别是什么
rpc和http的区别在于,http请求是通过使用具有标准语义的通用接口指向资源的,这些接口可以由中间组件和提供服务的源机器来解释。结果是一个应用程序支持
层的
转换和间接,并且独立于消息的来源,对于一个互联网规模、多组织、不可控可扩展性的信息系统非常有用。相比之下,rpc的机制是根据语言API(language
API)定义的,而不是根据基于网络的应用定义的。
HTTP和RPC的优缺点
主要阐述了HTTP和RPC的异同,让大家更容易根据自己的实际情况选择更合适的方案。
传输协议
RPC:可以基于TCP协议,也可以基于HTTP协议
HTTP:基于HTTP协议
传输效率
RPC:使用自定义的TCP协议可以使请求消息更小,或者使用HTTP2协议也可以减小消息大小,提高传输效率
HTTP:如果是基于HTTP1.1协议的话,请求中会包含很多无用的内容。如果它基于HTTP2.0,那么简单的封装可以用作一个RPC,然后标准的RPC框架更多的是关于服务治理
性能消耗
RPC:基于节约可以实现高效的二进制传输
HTTP:大部分都是通过json实现的,字节大小和序列化时间比节约更消耗性能
负载平衡
基本上,它有自己的负载平衡策略
HTTP:需要配置Nginx和HAProxy才能实现
服务治理
RPC:自动通知可以在不影响上游的情况下实现
HTTP:修改Nginx/HAProxy配置需要提前通知
摘要
RPC主要用于内部服务调用,性能消耗低,传输效率高,服务管理方便。HTTP主要用于异构环境,浏览器接口调用,APP接口调用,第三方接口调用等。