RPC框架实现的架构原理都是类似的
-
RMI
JAVA RMI 是基于Java的远程调用技术,支持真正的面向对象的多态性,完美支持Java语言独有的特性,不支持其他语言,使用Java原生的序列化机制,所有序列化对象必须实现Serializable接口,底层基于通信BIO(同步阻塞I/O)实现的socket完成。因原生序列化机制和BIO通信本身存在的性能问题,因此RMI性能较差
1.RMI服务接口继承java.rmi.Remote
2.接口方法必须显示声明抛出异常RemoteException
3.接口方法实现必须继承UnicastRemoteObject类,该类定义了服务调用方与服务提供方对象实例,并建立一对一连接
4.RMI通信端口随机产生,通过自定义RMISocketFactory类来实现指定端口 -
CXF/Axis2
-
Thrift