我正在嘗試爲託管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消息觸發,即使所有潛在節點都不可用,我也不能丟棄消息。 –