前言基础知识:
RMI:remote method Invocation 远程方法调用 只针对Java 底层数据通过socket进行传输
A机器上的方法,通过B机器来调用 调用的方式需要序列化成字节码,然后再进行反序列化
Client :stub 桩
Server :skeleton 骨架
序列化(将对象转换成字节编码过程)与反序列化(将字节转换成对象 解码)也叫做:编码与解码
RPC:remote procedure call :远程过程调用,很多RPC框架都是跨语言的,(服务器代码是Python 而客户端java)
使用步骤
- 定义接口说明文件(idl):描述了对象(结构体)、对象成员,接口方法等一系列信息
- 通过RPC框架所提供的编译器,将接口说明文件编译成具体语言文件
- 在客户端与服务器端分别引入RPC编译器所生成的文件,即可调用本地方法一样调用远程方法。
Webservice 也可以当成是一个RPC来看,只不过效率没RPC高。
RPC基于socket 而webservice基于http,效率没有socket