CXF故障转移问题

时间:2013-08-07 13:32:20

标签: jax-ws cxf failover

我正在尝试在重新启动托管Web服务的服务器时为Web服务客户端实现故障转移。我试图实现下面的代码,它运行得很好,但有两个问题:

  1. 第一次发生“失败”时,客户端将切换到下一个备用地址,但实际上不会完成Web服务调用。
  2. 当主服务器恢复时,客户端将不会切换回使用该服务器。相反,它会继续使用当前使用的服务器。
  3. 以下是代码:

    <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>
    

    有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我建议您使用像Apache httpd这样的Web服务器来在应用服务器集群的节点之间进行负载平衡。然后,群集和故障转移不是您的应用程序必须管理的内容。

答案 1 :(得分:1)

您可能希望尝试具备所需功能的备用CXF故障转移功能(故障恢复功能) https://github.com/jaceko/cxf-circuit-switcher