概念
RPC(Remote Procedure Calls,远程过程调用),是一种进程间的通信方式,其强调的点在于“远程”,即通过该种方式,能够让我们像本地调用一样实现与远程进程的通讯。
通俗一点来说,同样一个方法A,在没有使用RPC的时候,我们只能在本机器上调用该方法;使用RPC之后,A方法的代码在另一台机器上运行,但是我们也可以使用本机通过RPC对A方法进行调用
意义
业务规模的不断增大,给技术团队带来的影响主要有以下几个:
-
团队成员规模不断扩大
-
技术栈(尤其是语言栈)不断复杂并且多样
-
系统功能越来越多
对应上面三点影响,我们看下使用和不使用RPC的区别。
不使用RPC(代表着单体应用):
-
多人同时对同一套代码进行开发,代码维护成本高,错误率高,效率低
-
不同语言的系统之间通讯成本高
-
系统扩展性差,功能的增多给系统带来更多的压力,系统容错率降低,出错风险高
使用RPC(微服务化):
-
不同团队维护不同的代码,降低开发成本和风险
-
不同语言的系统之间通讯无障碍
-
系统扩展性强,原来的压力分散到了各个微服务上,容错率大大提高
因此,RPC很有意义