什么是远程调用?图文简要介绍

简介: 什么是远程调用?图文简要介绍

一、背景描述

什么是远程调用,网上一搜,有很多文章在讲解,但是感觉都讲的很深奥,对于初学者并不友好,下面是一种让我看到后,有一种豁然开朗的感觉的介绍方式。

二、概念介绍

函数接口调用方式分为:

  • 本地调用(Local Procedure Call,简称LPC)。
  • 远程调用(Remote Procedure Call,简称RPC)。

下面是用C语言写的一个示例程序:

  • 本地调用:通常,在我们的代码中调用一个函数,这个函数要么是系统API,要么是我们自己实现的本地代码,一起编译,一起发布,也在同一个进程中一起执行,这就是本地调用!
  • 远程调用:被调用方法的具体实现不在同一个进程,而是在别进程,甚至别的电脑上。RPC一个重要思想就是,使远程调用看起来像本地调用一样,调用者无需知道被调用接口具体在哪台机器上执行。

三、远程调用原理

比如 A (client) 调用 B (server) 提供的remoteAdd()方法,以下是步骤:

  • Step1、首先A与B之间建立连接(通常是TCP,但还有其他的,如HTTP、管道等);
  • Step2、然后A把需要调用的方法名(这里是remoteAdd)以及方法参数(10, 20)序列化成字节流发送出去;
  • Step3、B接受A发送过来的字节流,然后反序列化得到方法名,方法参数,接着执行相应的方法调用并把结果30返回;
  • Step4、A接受远程调用结果,输出30。

通过上面的简单阐述,远程调用与socket通讯非常像啊,都是远程通讯,都是C/S模式。但是他们两者到底有啥区别?

  1. RPC在提供强大的远程调用能力的同时,不损失本地调用的语义简洁性。RPC一个重要思想就是:使远程调用看起来像本地调用一样。
  2. socket是RPC经常采用的通信手段之一,除了Socket,RPC还有其他的通信方法,比如:http、操作系统自带的管道等。

 

完结!


相关文章
|
6月前
|
消息中间件 分布式计算 Java
探究Kafka原理-3.生产者消费者API原理解析(上)
探究Kafka原理-3.生产者消费者API原理解析
68 0
|
6月前
|
Dubbo Java 应用服务中间件
从源码全面解析 dubbo 服务端服务调用的来龙去脉
从源码全面解析 dubbo 服务端服务调用的来龙去脉
|
6月前
|
Dubbo 中间件 应用服务中间件
【想进大厂还不会阅读源码】ShenYu源码-支持motan协议
ShenYu源码阅读📚。原来的插件只支持 motan2 协议,并且是硬编码的,本次修改使MotanRpcExt 得到增强。我们可以通过以上的线索来思考我们本次的阅读线索,贡献者是做了什么实现了增强motan插件、这个motan的插件的功能是什么。
|
6月前
|
数据可视化 数据挖掘 物联网
API接口:原理、设计与应用
随着互联网技术的发展,应用程序之间的交互变得越来越频繁。API(应用程序编程接口)作为不同应用程序之间的桥梁,发挥着越来越重要的作用。本文将详细介绍API接口的原理、设计与应用,并通过部分代码示例帮助读者更好地理解。
|
6月前
|
消息中间件 缓存 Kafka
探究Kafka原理-3.生产者消费者API原理解析(下)
探究Kafka原理-3.生产者消费者API原理解析
173 0
|
6月前
|
存储 Dubbo Java
从源码全面解析 dubbo 服务订阅的来龙去脉
从源码全面解析 dubbo 服务订阅的来龙去脉
|
小程序
小程序订阅消息推送简要流程图
小程序订阅消息推送简要流程图
112 0
小程序订阅消息推送简要流程图
|
XML JSON Java
深入探究API接口
API接口作为程序员与外部应用程序交互的桥梁,对于开发工作至关重要。在本文中,我们了解了API接口的定义、类型、使用场景,以及常见的调用方式和相关技术知识。希望本文能够帮助读者更好地掌握和应用API接口,为开发工作带来便利和效率提升。
|
存储 缓存 负载均衡
计网 - 怎样实现 RPC 框架
计网 - 怎样实现 RPC 框架
107 0
|
编解码 分布式计算 Java
基于 netty 封装的超简单通俗易用 服务端客户端交互框架 《net-framework》原理,源码和使用说明,开箱即用,只需要开发业务逻辑,完全自定义无限扩充 [结尾附github源码]
基于 netty 封装的超简单通俗易用 服务端客户端交互框架 《net-framework》原理,源码和使用说明,开箱即用,只需要开发业务逻辑,完全自定义无限扩充 [结尾附github源码]
基于 netty 封装的超简单通俗易用 服务端客户端交互框架 《net-framework》原理,源码和使用说明,开箱即用,只需要开发业务逻辑,完全自定义无限扩充 [结尾附github源码]