远程方法调用介绍

文章目录

目录

前言

一、函数调用的分类

1.本地调用(Local Procedure Call,简称LPC)

2.远程调用(Remote Procedure Call,简称RPC)

二、远程调用的原理

远程调用和socket通讯的区别

三、远程方法调用和远程过程调用的区别

1.远程方法调用

2.远程过程调用

总结


前言

今天项目需要通过远程调用写几个来回调用的接口,A调B,B调C那种,但我还不太了解远程调用以及如何写一个接口,所以今天记录一下学习过程


一、函数调用的分类

1.本地调用(Local Procedure Call,简称LPC)

        本地调用:通常,在我们的代码中调用一个函数,这个函数要么是系统API,要么是我们自己实现的本地代码,一起编译,一起发布,也在同一个进程中一起执行,这就是本地调用

2.远程调用(Remote Procedure Call,简称RPC)

        远程调用:被调用的方法的具体实现不在同一个进程中,而是在别的进程,甚至别的电脑上.RPC一个重要的思想就是,使远程调用看起来像本地调用一样,调用者无需知道被调用的接口具体在哪台机器上执行

二、远程调用的原理

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

远程调用和socket通讯的区别

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

三、远程方法调用和远程过程调用的区别

1.远程方法调用

        RMI远程方法调用.能够让在客户端Java虚拟机上的对象调用本地对象一样调用服务端java虚拟机中的对象上的方法.使用代表:EJB

2.远程过程调用

        RPC(Remote Procedure Call Protocol)远程过程调用协议,通过网络从远程计算机上请求调用某种服务.它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.


总结

现在用mybatis逆向工程生成的mapper层,其实就是dao层.

参考和学习文档:

Java知识整理——远程方法调用

什么是远程调用?图文简要介绍_No8g攻城狮的博客-CSDN博客

远程方法调用(RMI)与远程过程调用(RPC)_短链接远程方法调用_lzcWHUT的博客-CSDN博客

你可能感兴趣的:(java,maven,spring,mybatis)