初中生都能看懂的RPC教程——3分钟让你搞明白RPC

3分钟让你搞明白RPC——初中生都能看懂的RPC教程

看了看网上的RPC教程,讲的都太废话连篇了,决定自己写一个,几句话解释清楚,只要你能看懂java代码,就能看懂这篇文章。

  • RPC
    英文名:Remote Procedure Call
    中文名:远程过程调用
    啥意思:说白了,RPC就是在一台计算机上,调用另一台计算机上的函数,所以它肯定会用到网络通信。
  • 举个例子
    我们在计算机B上写了个小狗跑步的程序,调用了run()函数,让小狗跑了100米,这程序很弱智,都能看懂;
    这其实就是非常普通的本地函数调用,因为在同一块内存,用方法栈和参数栈就能实现:
public class Dog {
	public static void main(String[] args) {
	    Dog dog = new Dog();
	    String result = dog.run(100);
	    System.out.println(result);
	}
    public String run(int length) {
        return "我跑到终点了,跑了" + length + "米";
    }
}

问题来了,我们想在计算机A上,像调用本地方法一样,调用计算机B上dog对象的run()方法,这就是RPC要干得事,RPC说白了就是这么简单。
问题:

  1. 计算机A和计算机B根本就是两台计算机,不是同一块内存,A怎么去调用B上的方法呢?
  2. 在计算机A上调用计算机B上的run()方法时,如何像本地调用一样方便,让调用者感知不到远程调用的逻辑呢?

思考:

  • 既然是两台计算机,那肯定需要用网络来通信;
  • 可不可以这样?计算机A通过网络,给计算机B发送了想要调用run()的请求,并把参数100米发给B,B收到请求,自己调用run(),然后将结果传给A。
    RPC,分布式
    其实RPC就是这么干的!
    说白了,RPC就是用一种策略,在计算机A上调用计算机B上的方法,它广泛应用于分布式系统。
  • 总结
  1. 计算机A调用计算机B上的dog.run()方法,它们不在一台计算机上,所以底层需要用网络传输
  2. 底层网络传输,你可以用Java的Socket,也可以用基于Http协议的HttpClient,RPC并没有规定说你要用何种协议进行通讯

好了,看到这里我们都明白RPC是怎么回事了,具体RPC是如何实现的,请看下一篇。
下一篇,将为大家展示如何实现一个简单的RPC通信实例,非常简单!

实践篇:《初中生都能看懂的RPC教程——8分钟教你写个RPC框架

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值