美文网首页机器学习文摘
RPC(一)简单理解RPC

RPC(一)简单理解RPC

作者: renwujie | 来源:发表于2018-09-25 11:44 被阅读18次

        当前,分布式应用、云计算、微服务大行其道,RPC作为其技术基石自然无比重要,甚至可以说,是RPC让它们的流行成为了可能。所以了解并学习RPC的原理和应用就有着不言自明的重要性。然而一开始就去理解过于术语化的文章或者论文对一些新手而言可能有点费劲,那么就从一个简单有趣的故事开始吧。

        本篇文章的目的只是希望能够对RPC(远程过程调用)这个概念术语本身有一个简单笼统的理解,仅此而已。内容copy于参考资料。:-)

如何通俗地理解RPC?

        一个阳光明媚的早晨,老婆又在翻看我订阅的技术杂志。

        老公,什么是RPC呀,为什么你们程序员那么多黑话!”,老婆还是一如既往的好奇。

        “RPC,就是Remote Procedure Call的简称呀,翻译成中文就是远程过程调用嘛”,我一边看着书,一边漫不经心的回答着。

        “啥?你在说啥?谁不知道翻译成中文是什么意思?你个废柴,快给我滚去洗碗!”

        “我去...”,我如梦初醒,我对面坐着的可不是一个程序员,为了不去洗碗,我瞬间调动起全部脑细胞,星辰大海在我脑中汇聚,灵感涌现……

        “是这样,远程过程调用,自然是相对于本地过程调用来说的嘛。” 

        “嗯哼,那先给老娘讲讲,本地过程调用是啥子?”

        “本地过程调用,就好比你现在在家里,你要想洗碗,那你直接把碗放进洗碗机,打开洗碗机开关就可以洗了。这就叫本地过程调用。”

        “哎呦,我可不干,那啥是远程过程调用?”

        “远程嘛,那就是你现在不在家,跟姐妹们浪去了,突然发现碗还没洗,打了个电话过来,叫我去洗碗,这就是远程过程调用啦”,多么通俗易懂的解释,我真是个天才!

        “哦!我明白了”,说着,老婆开始收拾包包。

        “你这是干啥去哦”

        “我?我要出门浪去呀,待会记得接收我的远程调用哦,哦不,咱们要专业点,应该说,待会记得接收我的RPC哦!”

        ……

如何稍加专业一点理解RPC?

        假设有一个计算器接口Calculator,以及它的实现类CalculatorImpl。那么在系统还是单机应用时,要调用Calculator的add方法来执行一个加运算,直接new一个CalculatorImpl,然后调用add方法就行了。这其实就是非常普通的本地函数调用,因为在同一个地址空间,或者说在同一块内存,所以通过方法栈和参数栈就可以实现。

本地过程调用

        现在,基于高性能和高可靠等因素的考虑,你决定将系统改造为分布式应用,将很多可以共享的功能都单独拎出来,比如上面说到的计算器,你单独把它放到一个服务里头,让别的服务去调用它。

远程过程调用

        在本地去调用远程机器上的执行,这个调用过程就是RPC(远程过程调用)。

总结

        相信到这里您已经对RPC这一概念术语有了一个笼统的理解。下一篇RPC(二)浅谈RPC将可以帮助对RPC的来源以及其设计和实现有更多的理解。

参考资料

1.如何给老婆解释什么是RPC

相关文章

  • RPC(一)简单理解RPC

    当前,分布式应用、云计算、微服务大行其道,RPC作为其技术基石自然无比重要,甚至可以说,是RPC让它们的流行成为了...

  • 高性能分布式RPC框架Zerorpc

    RPC说明: a. RPC(Remote Procedure Call)远程过程调用,简单的理解是一个节点请求另一...

  • RPC入门介绍

    RPC 什么是RPC RPC全称Remote Procedure Call,即远程过程调用。要理解RPC,首先要...

  • PhpRpc 从 0 到 0.7

    1.什么是RPC RPC全称Remote Procedure Call,中文译为远程过程调用,简单理解就是 一种解...

  • 分享解析RPC核心原理和几个常用技术

    一.RPC简介 RPC(英文全称:Remote Procedure Call)中文全称:远程过程调用 RPC简单来...

  • swoole实现简易RPC

    RPC RPC(Remote Procedure Call)远程过程调用,简单的理解是一个节点请求另一个节点提供的...

  • pomelo-rpc原理解析之client

    原文pomelo-rpc原理解析之client pomelo-rpc是pomelo项目底层的rpc框架,提供了一个...

  • pomelo-rpc原理解析之server

    原文pomelo-rpc原理解析之server pomelo-rpc是pomelo项目底层的rpc框架,提供了一个...

  • RPC(二)浅谈RPC

    上一节《RPC(一)简单理解RPC》中曾提到, “在本地去调用远程机器上的执行(或者叫程序,过程),这个调用过程就...

  • gRPC基于Golang和Java的简单实现

    原文连接: 一文了解RPC以及gRPC基于Golang和Java的简单实现 一:什么是RPC 简介:RPC:Re...

网友评论

    本文标题:RPC(一)简单理解RPC

    本文链接:https://www.haomeiwen.com/subject/edbkoftx.html