1. 什么是 RPC 框架?它有什么优点?

好的,那我先讲一下什么是RPC协议吧。

RPC是一种在分布式系统中用于跨服务通信的一种技术,它也是一种计算机通信协议。

而RPC框架是基于RPC协议实现的,用于一个程序(这里认为是消费者端)可以像调用本地方法一样调用另一个远程程序的接口(这里认为是生产者端),这个过程用户不用关心框架底层的数据传输原理及通信细节。它是由RPC框架实现的,可以使开发者快速的建立微服务程序。

对于RPC框架来说,它有以下几个优点:

  • 高性能:RPC是基于自定义的网络通信协议和序列化和反序列化机制,这使得RPC有非常好的性能
  • 内置很多模块:RPC提供了很多模块,比如负载均衡,服务发现,容错机制等,这让RPC框架具备高可用性和稳定性
  • 支持动态扩展:RPC框架允许开发者自行定义扩展,比如自定义负载均衡器,自定义序列化和反序列化机制等

我的这个RPC项目是基于Spring的IOC容器加自定义注解实现的RPC框架,使得项目本身有非常好的扩展性

2. RPC 和 HTTP 有什么区别?RPC 算是计算机网络哪一层的协议

RPC和HTTP是两种不同的通信协议,它们都是计算机应用层的协议,它们的不同点主要体现在设计目的,实现方式,使用场景这三个层面:

  1. 设计目的
  • RPC:RPC用于应用程序之间实现远程调用,使调用方可以像调用本地方法一样调用远程方法
  • HTTP:HTTP是用于客户端和服务端之间传输超文本文档,或者是WEB应用程序之间进行通信
  1. 实现方式
  • RPC:RPC是基于自定义通信协议和编码机制实现的,比如基于TPC和自定义协议头实现信息通信,这也是RPC具备高性能的原因
  • HTTP:HTTP是基于TPC协议,采用请求-响应模型实现通信服务
  1. 使用场景
  • RPC:一般用于服务端之间的调用通信
  • HTTP:一般用于服务端,前后端之间的通信