分布式通信框架 RMI:
1.RPC 概念:
Remote procedure call protocal, 远程过程调用协议, 一般用来实现部署在不同机器上的系统之间的方法调用,
使得程序能够像访问本地系统资源一样, 通过网络传输去访问远端系统资源 (RPC 协议其实是一个规范)
主流的 RPC 协议有: Dubbo,Thrif,RMI,webservice,Hessain (远程过程调用框架)
网络协议和网络 IO 对于调用端和服务端来说是透明 (动态代理);
参考: https://www.jianshu.com/p/5b90a4e70783
2.RMI 概念:
Remote Method Invocation , 远程方法调用, 可以认为是 RPC 的 java 版本, 使用的是 JRMP(Java Remote Messageing Protocol),
JRMP 是专门为 java 定制的通信协议, 所以它是纯 java 的分布式解决方案
3. 实现一个 RMI 程序步骤:
1》创建远程接口, 并且继承 java.rmi.Remote 接口并抛出网络传输异常 (throws RemoteException)
2》创建一个实现类实现远程接口, 并且继承: UnicastRemoteObject, 实现类的构造方法抛出网络传输异常
3》创建服务器程序 (服务端):createRegistry 方法注册远程对象
4》创建客户端程序 (消费端)
代码地址: https://github.com/21karat/rmi
4. 自己实现一个 RMI
1》编写服务器程序, 暴露一个监听, 可以使用 socket
2》编写客户端程序, 通过 ip 和端口连接到指定的服务器, 并且将数据做封装 (序列化)
3》服务器端收到请求, 先反序列化. 再进行业务逻辑处理. 把返回结果序列化返回
来源: http://www.bubuko.com/infodetail-2969670.html