白话RPC
什么是RPC? 目前大型互联网公司的系统都由成千上万大大小小的服务组成,各服务部署在不同的机器上,由不同的团队负责。 这时就会遇到两个问题: 要搭建一个新服务,免不了需要依赖他人的服务,而现在他人的服务都在远端,怎么调用? 其它团队要使用我们的新服务,我们的服务该怎么发布以便他人调用? 这时就需要借助RPC,即远程过程调用。 远程过程调用,自然是相对于本地过程调用来说的。 下面做个简单的比喻: “本地过程调用,就好比你现在在家里,你要想洗碗,那你直接把碗放进洗碗机,打开洗碗机开关就可以洗了。这就叫本地过程调用。” “那啥是远程过程调用?” “远程嘛,那就是你现在不在家,跟姐妹们浪去了,突然发现碗还没洗,打了个电话过来,叫我去洗碗,这就是远程过程调用啦” 简单直接吧! 对计算机来说,普通的本地函数调用,因为在同一个地址空间,或者说在同一块内存,所以通过方法栈和参数栈就可以实现。 远程过程调用,发出调用请求,该请求所执行的计算是在远程服务(机器)上。 说起RPC,就不能不提到分布式,这个促使RPC诞生的领域。 现在,基于高性能和高可靠等因素的考虑,你决定将系统改造为分布式应用,随着微服务的...