什么是rpc? remote procedure call 远程过程调用 ,简单的来说,我们现在实现了一个计算器的程序,通常我们会把这个计算器封装成一个函数,当我们想要计算的时候只需要把我们的参数传给计算器函数,把我们要处理的两个数据和我们要进行的操作传输过去,之后用一个返回值来把计算的结果返回给我们,但是这一整个流程都是在我们本地计算机上实现的,远程过程调用通俗的来说就是主函数运行在我当前的机器上但是计算器函数则在别人的机器上,我在我当前的机器调用他人机器上边的函数。
rpc和我们之前熟悉的http 的关系?在我想到计算器这个例子的时候就想到了自己之前基于http协议曾经写过了一个代码, 代码是一个客户端一个服务端,通过运行客户端在客户端获取两个数字和操作符传输给服务端,之后服务端进行处理返回给我们对应的结果,这不就是一个简单的rpc吗?那为什么需要rpc而不是像我们之前一样实现一个http接口?这就需要明白这两个的区别rpc是一种概念是一种思想,http也可以是rpc的一种实现方式,但是rpc的核心并不在于使用什么协议,rpc的目的是让你在本地调用远程的方法。我们现在接触到的程序无论是从代码量还是从复杂度上跟公司相比不在同一个数量级上,公司系统都是由上万个大大小小的服务组成的, 各个服务部署在不同的机器上,并且是由不同的团队负责的,比如淘宝里有购物车有收藏有支付系统等等,我们在搭建一个新的服务的时候免不了需要依赖他人的服务,那别人的服务部署在他们那里的远端,我们怎么调用,因为不同的服务在不同的机器,服务之间调用免不了需要通过网路来实现如果说每次调用一个服务都需要程序员像我上边说到的那样调用我编写的计算器那样来重新编写一段代码的话就会有很大个工作量,不仅仅十分复杂还极其容易出错。rpc就是为了解决这个问题。
rpc调用过程?
1.服务方调用的时候就以本地的调用方式来调用服务
2.client s