Red Hat Training
A Red Hat training course is available for Red Hat Fuse
22.2. 使用 Static Failover 启用 HA
概述
在服务 WSDL 文件中编码副本详情
您必须在服务 WSDL 文件中对集群中副本的详情进行编码。例 22.1 “使用静态故障转移启用 HA:WSDL 文件” 显示定义三个副本的服务集群的 WSDL 文件提取。
例 22.1. 使用静态故障转移启用 HA:WSDL 文件
<wsdl:service name="ClusteredService">
<wsdl:port binding="tns:Greeter_SOAPBinding" name="Replica1">
<soap:address location="http://localhost:9001/SoapContext/Replica1"/>
</wsdl:port>
<wsdl:port binding="tns:Greeter_SOAPBinding" name="Replica2">
<soap:address location="http://localhost:9002/SoapContext/Replica2"/>
</wsdl:port>
<wsdl:port binding="tns:Greeter_SOAPBinding" name="Replica3">
<soap:address location="http://localhost:9003/SoapContext/Replica3"/>
</wsdl:port>
</wsdl:service>例 22.1 “使用静态故障转移启用 HA:WSDL 文件” 中显示的 WSDL 提取可如下所示:
定义服务 ClusterService,在三个端口上公开:
-
Replica1 -
Replica2 -
Replica3
定义 Replica1 以通过 HTTP 端点在端口 9001 上公开 ClusterService 作为 SOAP。
定义 Replica2 将 ClusterService 公开为通过 HTTP 端点在端口 9002 上的 SOAP。
定义 Replica3 以通过 HTTP 端点在 9003 上公开 ClusterService 作为 SOAP。
在客户端配置中添加集群功能
在客户端配置文件中,添加集群功能,如 例 22.2 “使用静态故障转移启用 HA:客户端配置” 所示。
例 22.2. 使用静态故障转移启用 HA:客户端配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:clustering="http://cxf.apache.org/clustering"
xsi:schemaLocation="http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<jaxws:client name="{http://apache.org/hello_world_soap_http}Replica1"
createdFromAPI="true">
<jaxws:features>
<clustering:failover/>
</jaxws:features>
</jaxws:client>
<jaxws:client name="{http://apache.org/hello_world_soap_http}Replica2"
createdFromAPI="true">
<jaxws:features>
<clustering:failover/>
</jaxws:features>
</jaxws:client>
<jaxws:client name="{http://apache.org/hello_world_soap_http}Replica3"
createdFromAPI="true">
<jaxws:features>
<clustering:failover/>
</jaxws:features>
</jaxws:client>
</beans>