THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
The recent addition to CXF failover features is the implementation based on circuit breakers, more precisely Apache Zest (https://zest.apache.org/) library. The configuration is very similar to the regular failover strategy, the only difference is usage of clustering:circuit-breaker-failover element.
Spring
Code Block | ||||
---|---|---|---|---|
| ||||
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxrs="http://cxf.apache.org/jaxrs" xmlns:clustering="http://cxf.apache.org/clustering" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation=" http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/> <util:list id="addressList"> <value>http://localhost:${testutil.ports.Server.1}/rest</value> <value>http://localhost:${testutil.ports.Server.2}/rest</value> <value>http://localhost:${testutil.ports.Server.3}/rest</value> </util:list> <bean id="SequentialAddresses" class="org.apache.cxf.clustering.SequentialStrategy"> <property name="alternateAddresses"> <ref bean="addressList"/> </property> </bean> <bean id="RandomAddresses" class="org.apache.cxf.clustering.RandomStrategy"> <property name="alternateAddresses"> <ref bean="addressList"/> </property> </bean> <jaxrs:client id="failoverSequential" address="http://localhost:8080/initialAddress"> <jaxrs:features> <clustering:circuit-breaker-failover threshold="1" timeout="60000"> <clustering:strategy> <ref bean="SequentialAddresses"/> </clustering:strategy> </clustering:circuit-breaker-failover> </jaxrs:features> </jaxrs:client> <jaxrs:client id="failoverRandom" address="http://localhost:8080/initialAddress"> <jaxrs:features> <clustering:circuit-breaker-failover threshold="1" timeout="60000"> <clustering:strategy> <ref bean="RandomAddresses"/> </clustering:strategy> </clustering:circuit-breaker-failover> </jaxrs:features> </jaxrs:client> <bean id="myWebClient" class="org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean" factory-method="createWebClient"> <property name="address" value="http://some.base.url.that.responds/" /> <property name="features"> <ref bean="failover1"/> </property> </bean> </beans> |
...