分布式通讯协议--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的实现流程

  1. 创建远程接口, 并且继承java.rmi.Remote接口
  2. 实现远程接口,并且继承:UnicastRemoteObject
  3. 创建服务器程序: createRegistry方法注册远程对象
  4. 创建客户端程序


源码

缺点

  1. RMI 是java的,不能跨语言
  2. RMI的注册中心没办法负载,且注册到服务本地程序中的,一旦宕机当值所有客户端无法使用
  3. 序列化使用的是原生的jdk序列化,性能较差
  4. 服务端网络模型依旧是BIO,不是NIO,所以性能不好