Ribbon
Since Camel 2.18
The Ribbon component provides use of Netflix Ribbon for client side load balancing.
Maven users will need to add the following dependency to their pom.xml
for this component:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-ribbon</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel core version -->
</dependency>
This component helps applying load balancing feature at the client side when using ServiceCall EIP.
Configuration
-
Programmatic
RibbonConfiguration configuration = new RibbonConfiguration(); configuration.addProperties("ServerListRefreshInterval", "250"); RibbonLoadBalancer loadBalancer = new RibbonLoadBalancer(configuration); from("direct:start") .serviceCall() .name("myService") .loadBalancer(loadBalancer) .consulServiceDiscovery() .end() .to("mock:result");
-
Spring Boot
application.propertiescamel.cloud.ribbon.properties[ServerListRefreshInterval] = 250
routesfrom("direct:start") .serviceCall() .name("myService") .ribbonLoadBalancer() .consulServiceDiscovery() .end() .to("mock:result");
-
XML
<route> <from uri="direct:start"/> <serviceCall name="myService"> <!-- enable ribbon load balancer --> <ribbonLoadBalancer> <properties key="ServerListRefreshInterval" value="250"/> </ribbonLoadBalancer> </serviceCall> </route>