rpc和http的区别(4大区别详解)

rpc和http的区别(4大区别详解)-mikechen

RPC和HTTP是用于实现网络通信的两种不同的协议,但它们也有明显的区别,下面详解rpc和http的区别@mikechen

1.抽象层次的区别

RPC是一种更高级别的抽象,它允许应用程序通过远程调用的方式来调用远程服务,就像调用本地函数一样。

RPC通常隐藏了底层通信细节,使开发人员可以更专注于业务逻辑。

而HTTP是一种用于传输超文本的协议,它主要用于浏览器和服务器之间的通信,更关注于请求和响应的格式。

 

2.通信方式的区别

RPC通常基于二进制协议进行通信,例如:Protocol Buffers、Thrift等,它们使用紧凑的二进制格式进行数据传输,效率较高。

而HTTP使用文本协议,主要使用JSON或XML等格式进行数据的传输,可读性更好但相对更占用带宽。

 

3.应用场景的区别

RPC更适用于构建分布式系统和服务间的通信,它提供了更直接的方法调用,并且通常支持更丰富的语义,例如支持多种数据类型、异常处理和事务管理等。

HTTP主要用于客户端和服务器之间的通信,适用于Web应用程序和基于HTTP的API调用。

 

4.协议特性的区别

RPC通常支持多种协议,例如gRPC、Thrift和Dubbo等,这些协议提供了强大的功能,如服务发现、负载均衡和序列化等。

而HTTP具有广泛的应用支持,具有灵活性和扩展性,但在一些高级功能方面相对较弱。

总之,RPC和HTTP在设计目标、通信方式和应用场景上有所不同,选择使用RPC还是HTTP取决于具体的需求和系统设计的要求。

在构建分布式系统和高性能服务间通信时,RPC通常是更合适的选择,而HTTP更适用于Web应用程序和传统的客户端-服务器通信。

作者简介

陈睿|mikechen,10年+大厂架构经验,BAT资深面试官,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

👇阅读更多mikechen架构文章👇

阿里架构 |双11秒杀 |分布式架构 |负载均衡 |单点登录 |微服务 |云原生 |高并发 |架构师

以上

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

评论交流
    说说你的看法