spring框架对 remoting 支持的总结

皇甫鸿远
2023-12-01

spring 作为一个基础框架,最remoting(远程调用)有多种支持。

  1. 对传统RMI方式的支持 ,RMI是java 平台上最传统的 远程调用方法,这种方法基于Java Remote Method Protocol ,而这个协议的底层是TCP。实现传统RMI的核心类为RmiProxyFactoryBeanRmiServiceExporter,传统RMI使用Java平台默认的序列化方法序处理对象,同时因其底层为TCP,故易被某些防火墙拦截。由于属于传统的远程调用方法,所以被放在spring-context这个jar中。使用范例
  2. 使用HTTP 协议进行remoting.由于传统的RMI方式存在协议可能被拦截等问题,spring增加了http方式的remoting,也就是说使用HTTP协议取代了JRMP协议。这种方式有优点为只要防火墙允许HTTP协议即可运行。其他方面依旧使用Java平台默认的序列化方法序处理对象。由于使用了HTTP协议,服务器端需要运行在web服务器中,同时核心类HttpInvokerServiceExporterHttpInvokerProxyFactoryBean也被放在spring-web这个jar中.
  3. 使用http协议和Hessian序列化进行remoting.这种方式使用Hessian序列化取代Java平台的默认序列化方法,依旧使用HTTP协议。核心类HessianProxyFactoryBeanHessianServiceExporter被放在spring-web这个jar中.hessian具有更快的序列化速度和更小的体积。
  4. 使用http协议和Burlap序列化进行remoting.这种方式使用Burlap序列化取代Java平台的默认序列化方法,依旧使用HTTP协议。核心类BurlapProxyFactoryBeanBurlapServiceExporter被放在spring-web这个jar中.这种方法已经在spring 4.0 版本中被列为过时。
  5. 使用AMQP消息服务协议和JAVA序列化进行remoting.这种方法的优势是使用消息队服务器作为中间件,消息队列作为请求的缓存层,可以实现多个服务端在统一接口提供同样的服务。核心类AmqpProxyFactoryBeanAmqpInvokerServiceExporter被放在spring-amqp这个jar中.使用范例
 类似资料: