一、技术背景:
在软件系统应用发展过程中,随着系统访问量、业务复杂度、代码复杂度的提高,应用将从原来的单体架构向面向服务的分布式架构转变;部分需求无法在一个进程内,甚至一个计算机内通过本地调用的方式来完成时,软件系统能力就需要横向扩展,就需要在多台机器组成的集群上部署应用;例如不同系统、甚至不同组织之间的通讯;因此,RPC就成了分布式架构的核心。
例如,有两台服务器A和B,分别部署有不同的应用;如果A服务器上的应用想要调用B服务器上应用所提供的某一个或者多个方法时,由于两个应用不在一个内存空间,不能直接调用,而是需要通过网络来表达调用的语义,传达调用的数据。
在RPC架构中,通常将服务器B上部署的应用称为服务端、服务提供方;将服务器A上部署的应用称为客户端、服务消费方。
二、RPC架构介绍:
RPC,Remote Produce Call Protocol,即远程过程调用。在不同服务器之间通过网络传输特定参数来达到调用对方服务器方法来处理自身服务需求的目的。所以,RPC的本质就是,让开发者在不必关心底层通信机制的情况下完成一个通信,像调用本地方法一样方便的调用远程服务器的方法。
进程间通信 (IPC,Inter-Process Communication),指至少两个进程或线程间传送数据或信号的一些技术或方法。进程是计算机系统分配资源的最小单位。每个进程都有自己的一部分独立的系统资源,彼此是隔离的。为了能使不同的进程相互访问资源并进行协调工作,才有了进程间通信。这些进程可以运行在同一计算机上或网络连接的不同计算机上。进程间通信技术包