DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
Consul is a distributed, highly available, datacenter-aware, service discovery and configuration system.
Maven users will need to add the following dependency to their pom.xml for this component.
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-consul</artifactId>
<!-- use the same version as your Camel core version -->
<version>x.y.z</version>
</dependency>
URI format
consul:apiEndpoint[?options]
Where apiEnpoint represents the consul's HTTP API the consul-component should operate on:
Supported HTTP API are:
Options
Name | Group | Default | Java Type | Description |
|---|---|---|---|---|
url | common |
| String | Defines the URIs the component should connect to. |
| key | common | String | The default key. Can be overridden by CamelConsulKey | |
| action | producer | String | The default action. Can be overridden by CamelConsulAction | |
| pingInstance | common | true | boolean | Configure if the AgentClient should attempt a ping before returning the Consul instance |
| valueAsString | common | false | boolean | Default to transform values retrieved from Consul i.e. on KV endpoint to string. |
| connectTimeoutMillis | common | Long | Connect timeout for OkHttpClient | |
| readTimeoutMillis | common | Long | Read timeout for OkHttpClient | |
| writeTimeoutMillis | common | Long | Write timeout for OkHttpClient | |
| sslContextParameters | security | SSLContextParameters | SSL configuration using an org.apache.camel.util.jsse.SSLContextParameters instance | |
| userName | security | String | Sets the username to be used for basic authentication | |
| password | security | String | Sets the password to be used for basic authentication | |
| aclToken | security | String | Sets the ACL token to be used with Consul | |
| blockSeconds | consumer, watch | 10 | Integer | The second to wait for a watch event default 10 seconds |
| firstIndex | consumer, watch | 0 | Long | The first index to watch for |
| recursive | consumer, watch | false | boolean | Recursively watch |
Headers
| Name | Java Type | Description |
|---|---|---|
| CamelConsulAction | String | The action to perform |
| CamelConsulKey | String | The Key on which the action should be applied |
| CamelConsulEventId | String | The event id |
| CamelConsulEventName | String | The event name |
| CamelConsulEventLTime | Long | The event ltime |
| CamelConsulNodeFilter | String | The node filter |
| CamelConsulTagFilter | String | The tag filter |
| CamelConsulSessionFilter | String | The session filter |
| CamelConsulVersion | Integer | The data version |
| CamelConsulFlags | Long | Flags associated with a value |
| CamelConsulCreateIndex | Long | The internal index value that represents when the entry was created |
| CamelConsulLockIndex | Long | The number of times this key has successfully been acquired in a lock |
| CamelConsulModifyIndex | Long | The last index that modified this key |
| CamelConsulOptions | Object | Options associated to the request |
| CamelConsulResult | Boolean | true if the response has a result |
| CamelConsulSession | String | The session id |
| CamelConsulValueAsString | Boolean | To transform values retrieved from Consul i.e. on KV endpoint to string. |
KV API example:
CamelContext context = new DefaultCamelContext();
context.addRoutes(new RouteBuilder() {
public void configure() {
from("direct:put")
.to("consul:kv-put")
.to("log:camel-consul?level=INFO");
}
});
FluentProducerTemplate.on(context)
.withHeader(ConsulConstants.CONSUL_ACTION, ConsulKeyValueActions.PUT)
.withHeader(ConsulConstants.CONSUL_KEY, "mykey")
.withBody(val)
.to("direct:kv-put")
.send();
Watch API example:
CamelContext context = new DefaultCamelContext();
context.addRoutes(new RouteBuilder() {
public void configure() {
from("consul:kv?key=myKey&valueAsString=true")
.to("log:camel-consul?level=INFO&showAll=true")
.to("mock:kv-watch");
}
});