我正在尝试为托管Web服务的服务器重新启动时的时间为Web服务客户端实现故障切换。我试图执行下面的代码,它工作得很好,但是有两个问题:CXF故障转移问题
- 第一次“失败”发生后,客户端将切换到下一个备用地址,但不会实际完成的Web服务调用。
- 当主服务器恢复运行时,客户端不会切换回使用该服务器。相反,它会继续使用它当前使用的任何服务器。
下面的代码:
<jaxws:client id="someService"
serviceClass="com.foo.bar.webservice.service.SomeService"
address="https://myserver.server.net/webservices/cxf/SomeService"
username="myuser"
password="mypassword">
<jaxws:features>
<clustering:failover>
<clustering:strategy>
<bean class="org.apache.cxf.clustering.SequentialStrategy">
<property name="alternateAddresses">
<list>
<value>otherserver/webservices/cxf/SomeService</value>
<value>thirdserver/webservices/cxf/SomeService</value>
</list>
</property>
</bean>
</clustering:strategy>
</clustering:failover>
</jaxws:features>
</jaxws:client>
任何想法?
虽然我会同意通过负载均衡故障转移可能是最清洁,最简单的解决方案,也不会对我来说很有用。此服务调用由接收JMS消息触发,即使所有潜在节点都不可用,我也不能丢弃消息。 –