RPC(Remote Procedure Call),中文称作“远程过程调用”。

先用一句话描述它的作用:通过网络从远程计算机上请求服务。

我对RPC的初始印象:Raft集群节点间的通信用的是RPC,很多分布式系统内部也有RPC通后。

我对RPC作用的认知:RPC是专用于分布式系统节点内通信的一种技术

我的问题:为什么分布式系统内部要用RPC,而不是用HTTP呢?为什么分布式系统和外部的通信就要用HTTP呢?

第一个切入点:RPC与HTTP的区别

RPC是一种技术思想,是一种普适性的方法,而非一种规范和协议。这点,应该就是和HTTP这样标准化的协议最大的不同。

Untitled

既然我们说RPC是一种远程调用的技术思想,那么HTTP是不是也是远程调用技术,HTTP是不是也应该算是RPC的一种呢?

理论上来说HTTP也属于RPC。

RPC作为一种技术思想并不是专用于分布式系统内部。

RPC框架是指把RPC调用这个过程封装起来,让编程人员通过简单的配置来实现RPC。

第二个切入点:深入了解RPC框架

RPC框架是指把RPC调用这个过程封装起来,因为我们一个分布式系统有不同的服务模块(类似于岸基yixing,ruoyi模块)不同机器上的方法需要互相调用,而分别实现RPC不仅复杂而且容易产生不兼容的问题。RPC框架就可以把RPC调用这个过程封装起来,使得我们开发者不用考虑模块间兼容的问题,简单配置就可以直接调用啦。以上过程会涉及到服务注册发现、RPC命令序列化和反序列化、网络分发等等机制都可以用RPC来实现。

RPC框架分为以下两类:

Untitled

RPC框架输入应用层

Untitled

所以基于Socket的框架在传输层,基于HTTP的在应用层。

Untitled