分布式通讯协议--RMI
什么是RPC
Remote procedure call protocal 远程过程调用协议
RPC协议其实是一个规范。具体实现由:Dubbo、thrif、RMI、WebService、Hessaion
网络协议和网络IO对于调用端和服务端来说是透明的
一个RPC框架包含的要素
RMI 的概述
RMI(remote method invocation) , 可以认为是RPC的java版本
RMI使用的是JRMP(Java Remote Messageing Protocol), JRMP是专门为java定制的通信协议,所以踏实纯java的分布式解决方案
RMI的实现流程
- 创建远程接口, 并且继承java.rmi.Remote接口
- 实现远程接口,并且继承:UnicastRemoteObject
- 创建服务器程序: createRegistry方法注册远程对象
- 创建客户端程序
源码
缺点
- RMI 是java的,不能跨语言
- RMI的注册中心没办法负载,且注册到服务本地程序中的,一旦宕机当值所有客户端无法使用
- 序列化使用的是原生的jdk序列化,性能较差
- 服务端网络模型依旧是BIO,不是NIO,所以性能不好