RPC项目面试题
1. 什么是 RPC 框架?它有什么优点?
好的,那我先讲一下什么是RPC协议吧。
RPC是一种在分布式系统中用于跨服务通信的一种技术,它也是一种计算机通信协议。
而RPC框架是基于RPC协议实现的,用于一个程序(这里认为是消费者端)可以像调用本地方法一样调用另一个远程程序的接口(这里认为是生产者端),这个过程用户不用关心框架底层的数据传输原理及通信细节。它是由RPC框架实现的,可以使开发者快速的建立微服务程序。
对于RPC框架来说,它有以下几个优点:
- 高性能:RPC是基于自定义的网络通信协议和序列化和反序列化机制,这使得RPC有非常好的性能
- 内置很多模块:RPC提供了很多模块,比如负载均衡,服务发现,容错机制等,这让RPC框架具备高可用性和稳定性
- 支持动态扩展:RPC框架允许开发者自行定义扩展,比如自定义负载均衡器,自定义序列化和反序列化机制等
我的这个RPC项目是基于Spring的IOC容器加自定义注解实现的RPC框架,使得项目本身有非常好的扩展性
2. RPC 和 HTTP 有什么区别?RPC 算是计算机网络哪一层的协议
RPC和HTTP是两种不同的通信协议,它们都是计算机应用层的协议,它们的不同点主要体现在设计目的,实现方式,使用场景这三个层面:
- 设计目的
- RPC:RPC用于应用程序之间实现远程调用,使调用方可以像调用本地方法一样调用远程方法
- HTTP:HTTP是用于客户端和服务端之间传输超文本文档,或者是WEB应用程序之间进行通信
- 实现方式
- RPC:RPC是基于自定义通信协议和编码机制实现的,比如基于TPC和自定义协议头实现信息通信,这也是RPC具备高性能的原因
- HTTP:HTTP是基于TPC协议,采用请求-响应模型实现通信服务
- 使用场景
- RPC:一般用于服务端之间的调用通信
- HTTP:一般用于服务端,前后端之间的通信
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Chu_Yu-blog!





