前两篇文章已经对spring rmi方式的远程接口调用进行了说明,在本文中,我主要对spring的集群进行总结和实践,主要使用的组件为cluster4spring
集群的目的主要是为了实现负载均衡和单点故障.
实际的例子如下:
1.从cluster4spring官方网站上下载其二进制softamis-cluster4spring-0.85.jar包文件,目前的版本为0.85,其下载网址为http://www.soft-amis.com或者http://sourceforge.net/projects/pscs/
2.从spring官方网站上下载其所需要的二进制jar包文件.
3.新建2个java项目,一个为server端, 一个为client端, 如spring 远程接口访问及集群方案(二)中的服务端和客户端代码一样.
4.新建一个客户端的配置文件client-cluster.xml,内容如下:
<?xml verson="1.0" encoding = "uft-8"?>
<!DCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean name = "_RmiEndpointFactory" class="org.softamis.cluster4spring.rmi.support.RmiEndpointFactory"/>
<bean name="REMOTE_SERVICE_CLIENT" class="org.softamis.cluster4spring.rmi.RmiUrlListProxyFactoryBean"
abstract="true">
<property name="refreshEndpointsOnConnectFailure" value="true"/>
<property name="refreshEndpointsOnStartup" value="true"/>
<property name="registerTraceInterceptor" value="true"/> <property name="switchEndpointOnFailure" value="true"/>
<property name="endpointFactory" ref="_RmiEndpointFactory"/>
<property name="endpointSelectionPolicy">
<bean class="org.softamis.cluster4spring.support.invocation.DefaultEndpointSelectionPolicy"/>
</property>
</bean>
<bean name="helloWorldServiceProxy" parent="REMOTE_SERVICE_CLIENT"> <property name="serviceInterface" value="demo.rmi.server.IHelloWorld"/>
<property name="serviceURLs">
<list>
<value>rmi://server1:1099/helloWorldService</value>
<value>rmi://server2:1099/helloWorldService</value>
<value>rmi://server3:1099/helloWorldService</value>
</list>
</property>
</bean>
使用此配置文件来运行客户端,一般情况下会提示错误信息,如:RMI lookup for bean [contextService] with interface [my.own.Interface] failed ; nested exception is java.lang.ClassCastException: java.lang.String
如果出现此错误信息,则应修改上述文件中的serviceURLs属性的配置为:
<property name=”serviceURLs”>
<list>
<bean class=”org.softamis.cluster4spring.support.ServiceMoniker”>
<constructor-arg><value>rmi://localhost:1009/helloWorldService</value></constructor-arg>
</bean>
<bean class=”org.softamis.cluster4spring.support.ServiceMoniker”><constructor-arg><value>rmi://localhost: 1009/ helloWorldService </value></constructor-arg>
</bean>
<bean class=”org.softamis.cluster4spring.support.ServiceMoniker”>
<constructor-arg><value>rmi://localhost: 1009/ helloWorldService </value></constructor-arg>
</bean>
</list>
</property>
如果有任何问题可以留言与我交流,我也好学习学习。
注意:上面的项目中如果有错误信息,请检查所引用的包有没有问题,是不是少了spring.jar, aopalliance.jar,commons-logging.jar,log4j.jar等等
分享到:
相关推荐
Dubbo是一个高性能、轻量级的开源Java RPC框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。 Dubbo提供了三大核心能力:面向接口的远程方法调用、智能容错和负载均衡,以及服务自动注册...
模块包括:定时任务调度、服务器监控、平台监控、平台设置、开发平台、单点登录、Redis分布式高速缓存、会员、营销、在线用户、日志、在线人数、访问次数、调用次数、直接集群、接口文档、生成模块、代码实例、安装...
模块包括:定时任务调度、服务器监控、平台监控、平台设置、开发平台、单点登录、Redis分布式高速缓存、会员、营销、在线用户、日志、在线人数、访问次数、调用次数、直接集群、接口文档、生成模块、代码实例、安装...
模块包括:定时任务调度、服务器监控、平台监控、平台设置、开发平台、单点登录、Redis分布式高速缓存、会员、营销、在线用户、日志、在线人数、访问次数、调用次数、直接集群、接口文档、生成模块、代码实例、安装...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...
各种EJB之间的调用源码示例,用远程接口的引用访问EJB、函数将被FirstEJB调用,同时它将调用secondEJB 基于JAVA的UDP服务器模型源代码 2个目标文件 摘要:Java源码,网络相关,UDP 基于JAVA的UDP服务器模型源代码...
各种EJB之间的调用源码示例,用远程接口的引用访问EJB、函数将被FirstEJB调用,同时它将调用secondEJB 基于JAVA的UDP服务器模型源代码 2个目标文件 摘要:Java源码,网络相关,UDP 基于JAVA的UDP服务器模型源代码...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...