blob: ac575dbc89fc6f308c93fe969abad0ffec9b0afe [file] [log] [blame]
= 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>
----