RMI/WebService冗余服务器的通用客户端。
需求:
企业应用要有有redundancy, 两台或者多台服务器提供HA(High available)服务,提供热备用。服务一般是EJB/RMI/Web Service等服务, 在一台发生服务故障后,客户端一般自动切换到其它可用服务器, 所有服务器都依次fail后才报错。
EJB也应该适用,但是一般EJB容器都提供了更完善的HA机制和策略。这里不cover.
不足和限制:
1. 暂时没有考虑内网/外网优先顺序。
2. 使用接口+java proxy实现拦截,接口必须。
3. web service使用动态绑定。
4. 一台失败后,遍历所有服务器,故障服务器没有排除
5. java 6以上测试通过
6. 通信失败的检测不见得完善
7. Web Service采用POJO发布,要求Port和Service名称和接口名称相同,便于简化查找。建议定义为常量。
测试服务代码(同时提供rmi/ws服务):
================================================
1 楼 steeven 2010-01-17 还有几个问题:
1. 没有考虑到一个端口上的多个service, 没有整体检测, 替换.
2. 没有采用ping机制,效率不高. 有的server可能会不支持.
3. 没有包装成URL对象.
4. WebService相关参数应该从接口反射本身取得
2 楼 C_J 2010-01-17 好像挺不错,学习了。
想请教几个问题:
1.一个端口会有多个service?
2.ping机制?你是说ICMP协议的ping么?如果机器禁止了怎么办呢?
3 楼 steeven 2010-01-19 C_J 写道好像挺不错,学习了。
想请教几个问题:
1.一个端口会有多个service?
2.ping机制?你是说ICMP协议的ping么?如果机器禁止了怎么办呢?
这里的端口就是JNDI或者HTTP的端口,里面可能注册了多个service.
ping,对,经常有机器关掉。但是自己的项目里面还是可控的