发表于: 2018-04-09 22:37:43
1 594
今天完成的事:
1、初步尝试远程调用技术(RMI)
远程调用是客户端应用和服务端之间的会话。在客户端,他所需要的一些功能并不在该应用的实现范围之内,所以应用要向能提供这些功能的其他熊寻求帮助,而远程应用通过远程服务暴露这些功能。
spring支持多种不同的RPC模型(远程过程调用),包括RMI、Caucho和Hessian和Burlap以及Spring自带的HTTPinvoker。
不管选用那种远程调用,我们会发现Spring都提供了风格一致的支持。
RMI服务端:
RmiServiceExporter可以把任意Spring管理的bean发布为RMI服务。RmiServiceExporter会把bean包装在一个适配器类中,然后适配器被绑定到RMI注册表中,并且代理到服务类的请求。
默认情况下RmiServiceExporter会尝试绑定到本机1099端口上的RMI 注册表。如果在这个端口没有发现RMI注册表,RmiServiceExporter将会启动一个注册表,如果希望绑定到不同端口或主机的RMI 注册表,我们可以指定端口。
RMI客户端:
RmiProxyFactoryBean是一个工厂bean,该bean可以为RMI服务创建代理。
RMI服务的UTL事通过RmiProxyFactoryBean的serviceUrl属性来设置的。同时,服务提供的接口由serviceInterface属性来指定。
2、部署两台服务端
只需要重新添加一个服务端,定义一个服务端口。
在客户端配置远程调用服务。
定义一个服务的分配类,用来分配客户端的请求调用
明天计划的事情:
发布到服务器上
遇到的问题:
没有正确理解RMI的使用方法,导致浪费一下午时间。多亏师兄指正RMI是作为服务启动的。后来更正后,就没什么问题了。
收获:
了解了远程方法调用。
评论