| = Ribbon Component |
| :page-source: components/camel-ribbon/src/main/docs/ribbon.adoc |
| |
| *Available as of Camel version 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: |
| |
| [source,xml] |
| ---- |
| <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 http://camel.apache.org/servicecall-eip.html[ServiceCall EIP]. |
| |
| == Configuration |
| |
| * *Programmatic* |
| + |
| [source,java] |
| ---- |
| 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* |
| + |
| [source,properties] |
| .application.properties |
| ---- |
| camel.cloud.ribbon.properties[ServerListRefreshInterval] = 250 |
| ---- |
| + |
| [source,java] |
| .routes |
| ---- |
| from("direct:start") |
| .serviceCall() |
| .name("myService") |
| .ribbonLoadBalancer() |
| .consulServiceDiscovery() |
| .end() |
| .to("mock:result"); |
| ---- |
| |
| * *XML* |
| + |
| [source,xml] |
| ---- |
| <route> |
| <from uri="direct:start"/> |
| <serviceCall name="myService"> |
| <!-- enable ribbon load balancer --> |
| <ribbonLoadBalancer> |
| <properties key="ServerListRefreshInterval" value="250"/> |
| </ribbonLoadBalancer> |
| </serviceCall> |
| </route> |
| ---- |
| |