RPC,就是将数据序列化之后传递给接收的服务器,然后获取一个序列化后的返回值。

在网络通信中,不管是TCP 还是UDP,我们都要在传输层上设计自己的应用层协议
使得前后端的数据可以相互通信传输一个可以识别的内容。
后来,人们期望能够更方便一点地让前后端进行交互,于是提出了RPC,

  • 就像调用函数一样来让前后端来进行通信,
  • 屏蔽掉复杂的应用层协议

RPC的通俗理解

比如你写了两个函数 fa和 fb,在 fa里肯定可以调用fb,这个可以理解吧?
好了,铺垫完了。接下来入正题: 别人写了个程序,程序里有个函数 rf,而且这个程序是独立运行的。
你自己写程序时想调用这个 rf,怎么办?rpc就是为了解决这个问题而出现的技术。

远程过程调用就是一种在两个原本相互独立的进程间建立一种类似于单个程序内函数间调用的函数调用机制
这样,不仅一个程序内的函数可以相互调用,不同程序间的函数也可以相互调用了。
至于用途,你可以从程序内函数调用的用途出发进行思考。首先是可以直接利用别的程序的部分功能,这是最基础的。

更重要的,利用 rpc可以实现系统的分布式架构

  • 一方面有些功能比较相关应该放到一起实现,
  • 一方面物理因素的原因要求系统分解为多机实现,因此有的功能实现为了一个机器上的进程,而另外的功能实现为在另外机器上的进程,
  • 这两个进程间的协同和信息交互就可以通过rpc来实现
  • 有些现成系统所设计的扩展方式就是要通过rpc实现,这时你就需要通过它所选择的 rpc协议编程方式对原系统进行功能扩展

https://blog.csdn.net/kalulioo/article/details/89189914

restful & RPC的区别
https://www.cnblogs.com/yixiaogo/p/14037115.html

RPC的应用场景