Author: buildbot
Date: Sun Mar 27 20:19:30 2016
New Revision: 983926
Log:
Production update by buildbot for camel
Modified:
websites/production/camel/content/cache/main.pageCache
websites/production/camel/content/hystrix.html
Modified: websites/production/camel/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.
Modified: websites/production/camel/content/hystrix.html
==============================================================================
--- websites/production/camel/content/hystrix.html (original)
+++ websites/production/camel/content/hystrix.html Sun Mar 27 20:19:30 2016
@@ -85,7 +85,7 @@
<tbody>
<tr>
<td valign="top" width="100%">
-<div class="wiki-content maincontent"><h2
id="Hystrix-HystrixComponent(Thedocumentationisstillinprogress)">Hystrix
Component (The documentation is still in progress)</h2><p><strong>Available as
of Camel 2.18</strong></p><p>The hystrix component provides integration with
Netflix <a shape="rect" class="external-link"
href="https://github.com/Netflix/Hystrix" rel="nofollow">Hystrix</a>. <span
class="repository-meta-content"><span>Hystrix is a latency and fault tolerance
library designed to isolate points of access to remote systems, services and
3rd party libraries, stop cascading failure and enable resilience in complex
distributed systems where failure is inevitable.</span></span></p><p><span
class="repository-meta-content"><span>The current implementation wraps a Camel
endpoint in <span class="pl-e">HystrixCommand</span> and provides</span></span>
synchronous execution (using Hystrix thread pools), fallback to a different
Camel endpoint, request caching (with custom request context
and cache clearing), timeouts. It does not implement request collapsing
yet.</p><p>Maven users will need to add the following dependency to their
<code>pom.xml</code> for this component:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<div class="wiki-content maincontent"><h2
id="Hystrix-HystrixComponent">Hystrix Component</h2><p><strong>Available as of
Camel 2.18</strong></p><p>The hystrix component provides integration with
Netflix <a shape="rect" class="external-link"
href="https://github.com/Netflix/Hystrix" rel="nofollow">Hystrix</a>. Hystrix
is a latency and fault tolerance library designed to isolate points of access
to remote systems, services and 3rd party libraries, stop cascading failure and
enable resilience in complex distributed systems where failure is
inevitable.</p><p>The current implementation wraps a Camel endpoint in
HystrixCommand and provides synchronous execution (using Hystrix thread pools),
fallback to a different Camel endpoint, request caching (with custom request
context and cache clearing), timeouts. It does not implement request collapsing
yet.</p><p>Maven users will need to add the following dependency to their
pom.xml for this component:</p><div class="code panel pdl" style="border
-width: 1px;"><div class="codeContent panelContent pdl">
<script class="brush: xml; gutter: false; theme: Default"
type="syntaxhighlighter"><![CDATA[<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-hystrix</artifactId>
@@ -95,7 +95,7 @@
</div></div><h3 id="Hystrix-URIformat">URI format</h3><div class="code panel
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<script class="brush: java; gutter: false; theme: Default"
type="syntaxhighlighter"><![CDATA[hystrix::groupKey[?options]
]]></script>
-</div></div><h3 id="Hystrix-URIOptions">URI Options</h3><p>All URI options can
be overriden through message headers. Most of the default values are coming
from Hystrix itself.</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd">commandKey</td><td colspan="1" rowspan="1"
class="confluenceTd"><p><span style="color:
rgb(0,0,0);">CamelHystrixCommand</span></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Used to identify a HystrixCommand instance for
statistics, circuit-breaker, properties, etc. By default this will be derived
from the instance class name.</p></td><
/tr><tr><td colspan="1" rowspan="1" class="confluenceTd">threadPoolKey</td><td
colspan="1" rowspan="1" class="confluenceTd"><p>null</p></td><td colspan="1"
rowspan="1" class="confluenceTd">String</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Used to define which thread-pool this command should
run in. By default this is derived from the
HystrixCommandGroupKey.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">cacheKeyExpression</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>null</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Expression</p></td><td colspan="1" rowspan="1"
class="confluenceTd">Camel expression to use for generating cache
key.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">initializeRequestContext</td><td colspan="1" rowspan="1"
class="confluenceTd">false</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Boolean</p></td><td colspan="1" rowspan="1"
class="confluenceTd">When true, Camel will initialize
a HystrixRequestContext during producer startup and use it for request scoped
caching and request scoped logging.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>runEndpointId</p></td><td colspan="1" rowspan="1"
class="confluenceTd">null</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>String (mandatory)</p></td><td colspan="1" rowspan="1"
class="confluenceTd">Camel Endpoint ID from the same Camel Context that should
be executed from Hystrix.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>fallbackEndpointId</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>null</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1"
class="confluenceTd">Camel Endpoint ID from the same Camel Context that should
be executed from Hystrix as fallback when runEndpointId fails.</td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd">corePoolSize</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>1
0</p></td><td colspan="1" rowspan="1" class="confluenceTd">Integer</td><td
colspan="1" rowspan="1" class="confluenceTd"><p>This property sets the core
thread-pool size. This is the maximum number of HystrixCommands that can
execute concurrently.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">keepAliveTime</td><td colspan="1" rowspan="1"
class="confluenceTd">1</td><td colspan="1" rowspan="1"
class="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd">This property sets the keep-alive time, in
minutes.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">maxQueueSize</td><td colspan="1" rowspan="1"
class="confluenceTd">-1</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Integer</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>This property sets the maximum queue size of the
BlockingQueue implementation.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">queueSizeRejectionThreshold</td><td colspan="1" ro
wspan="1" class="confluenceTd">5</td><td colspan="1" rowspan="1"
class="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd">This property sets the queue size rejection threshold
— an artificial maximum queue size at which rejections will occur even if
maxQueueSize has not been reached.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">threadPoolMetricsRollingStatisticalWindowInMilliseconds</td><td
colspan="1" rowspan="1" class="confluenceTd">10000</td><td colspan="1"
rowspan="1" class="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd">This property sets the duration of the statistical rolling
window, in milliseconds. This is how long metrics are kept for the thread
pool.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">threadPoolMetricsRollingStatisticalWindowBuckets</td><td
colspan="1" rowspan="1" class="confluenceTd">10</td><td colspan="1" rowspan="1"
class="confluenceTd">Integer</td><td colspan="1" row
span="1" class="confluenceTd">This property sets the number of buckets the
rolling statistical window is divided into.</td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd">circuitBreakerEnabled</td><td colspan="1"
rowspan="1" class="confluenceTd">true</td><td colspan="1" rowspan="1"
class="confluenceTd">Boolean</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>This property determines whether a circuit breaker will
be used to track health and to short-circuit requests if it
trips.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">circuitBreakerErrorThresholdPercentage</td><td colspan="1"
rowspan="1" class="confluenceTd">50</td><td colspan="1" rowspan="1"
class="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>This property sets the error percentage at or above
which the circuit should trip open and start short-circuiting requests to
fallback logic.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">circuitBre
akerForceClosed</td><td colspan="1" rowspan="1"
class="confluenceTd">false</td><td colspan="1" rowspan="1"
class="confluenceTd">Boolean</td><td colspan="1" rowspan="1"
class="confluenceTd">This property, if true, forces the circuit breaker into a
closed state in which it will allow requests regardless of the error
percentage.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">circuitBreakerForceOpen</td><td colspan="1" rowspan="1"
class="confluenceTd">false</td><td colspan="1" rowspan="1"
class="confluenceTd">Boolean</td><td colspan="1" rowspan="1"
class="confluenceTd">This property, if true, forces the circuit breaker into an
open (tripped) state in which it will reject all requests.</td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd">circuitBreakerRequestVolumeThreshold</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>20</p></td><td colspan="1" rowspan="1"
class="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd">This property se
ts the minimum number of requests in a rolling window that will trip the
circuit.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">circuitBreakerSleepWindowInMilliseconds</td><td
colspan="1" rowspan="1" class="confluenceTd">5000</td><td colspan="1"
rowspan="1" class="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd">This property sets the amount of time, after tripping the
circuit, to reject requests before allowing attempts again to determine if the
circuit should again be closed.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">executionIsolationSemaphoreMaxConcurrentRequests</td><td
colspan="1" rowspan="1" class="confluenceTd"><p>10</p></td><td colspan="1"
rowspan="1" class="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>This property sets the maximum number of requests
allowed to a HystrixCommand.run() method when you are using
ExecutionIsolationStrategy.SEMAPHORE.</p><p>If this maximum concurrent
limit is hit then subsequent requests will be rejected.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd">executionIsolationStrategy</td><td
colspan="1" rowspan="1" class="confluenceTd">THREAD</td><td colspan="1"
rowspan="1" class="confluenceTd">String</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>This property indicates which isolation strategy
HystrixCommand.run() executes with, one of the following two
choices:</p><ul><li>THREAD — it executes on a separate thread and
concurrent requests are limited by the number of threads in the
thread-pool</li><li>SEMAPHORE — it executes on the calling thread and
concurrent requests are limited by the semaphore
count</li></ul></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">executionIsolationThreadInterruptOnTimeout</td><td
colspan="1" rowspan="1" class="confluenceTd">true</td><td colspan="1"
rowspan="1" class="confluenceTd">Boolean</td><td colspan="1" rowspan="1"
class="confluenceTd">This pro
perty indicates whether the HystrixCommand.run() execution should be
interrupted when a timeout occurs.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">executionTimeoutInMilliseconds</td><td colspan="1"
rowspan="1" class="confluenceTd">1000</td><td colspan="1" rowspan="1"
class="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>This property sets the time in milliseconds after which
the caller will observe a timeout and walk away from the command
execution.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">executionTimeoutEnabled</td><td colspan="1" rowspan="1"
class="confluenceTd">true</td><td colspan="1" rowspan="1"
class="confluenceTd">Boolean</td><td colspan="1" rowspan="1"
class="confluenceTd">This property indicates whether the HystrixCommand.run()
execution should have a timeout.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">fallbackIsolationSemaphoreMaxConcurrentRequests</td><td
colspan="1" rowspan="1"
class="confluenceTd">10</td><td colspan="1" rowspan="1"
class="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd">This property sets the maximum number of requests a
HystrixCommand.getFallback() method is allowed to make from the calling
thread.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">fallbackEnabled</td><td colspan="1" rowspan="1"
class="confluenceTd">true</td><td colspan="1" rowspan="1"
class="confluenceTd">Boolean</td><td colspan="1" rowspan="1"
class="confluenceTd">This property determines whether a call to
HystrixCommand.getFallback() will be attempted when failure or rejection
occurs.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">metricsHealthSnapshotIntervalInMilliseconds</td><td
colspan="1" rowspan="1" class="confluenceTd">500</td><td colspan="1"
rowspan="1" class="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd">This property sets the time to wait, in milliseconds,
between allowing heal
th snapshots to be taken that calculate success and error percentages and
affect circuit breaker status.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">metricsRollingPercentileBucketSize</td><td colspan="1"
rowspan="1" class="confluenceTd">100</td><td colspan="1" rowspan="1"
class="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>This property sets the maximum number of execution
times that are kept per bucket. If more executions occur during the time they
will wrap around and start over-writing at the beginning of the
bucket.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">metricsRollingPercentileEnabled</td><td colspan="1"
rowspan="1" class="confluenceTd">true</td><td colspan="1" rowspan="1"
class="confluenceTd">Boolean</td><td colspan="1" rowspan="1"
class="confluenceTd">This property indicates whether execution latencies should
be tracked and calculated as percentiles. If they are disabled, all summary
statistics (mea
n, percentiles) are returned as -1.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">metricsRollingPercentileWindowInMilliseconds</td><td
colspan="1" rowspan="1" class="confluenceTd">60000</td><td colspan="1"
rowspan="1" class="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd">This property sets the duration of the rolling window in
which execution times are kept to allow for percentile calculations, in
milliseconds.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">metricsRollingPercentileWindowBuckets</td><td colspan="1"
rowspan="1" class="confluenceTd">6</td><td colspan="1" rowspan="1"
class="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd">This property sets the number of buckets the
rollingPercentile window will be divided into.</td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd">metricsRollingStatisticalWindowInMilliseconds</td><td
colspan="1" rowspan="1" class="confluenceTd">10000</td><td co
lspan="1" rowspan="1" class="confluenceTd">Integer</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>The following properties are related to
capturing metrics from HystrixCommand and HystrixObservableCommand
execution.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">metricsRollingStatisticalWindowBuckets</td><td colspan="1"
rowspan="1" class="confluenceTd">10</td><td colspan="1" rowspan="1"
class="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd">This property sets the number of buckets the rolling
statistical window is divided into.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">requestCacheEnabled</td><td colspan="1" rowspan="1"
class="confluenceTd">true</td><td colspan="1" rowspan="1"
class="confluenceTd">Boolean</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>This property indicates whether
HystrixCommand.getCacheKey() should be used with HystrixRequestCache to provide
de-duplication functionality via reques
t-scoped caching.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">requestLogEnabled</td><td colspan="1" rowspan="1"
class="confluenceTd">true</td><td colspan="1" rowspan="1"
class="confluenceTd">Boolean</td><td colspan="1" rowspan="1"
class="confluenceTd">This property indicates whether HystrixCommand execution
and events should be logged to
HystrixRequestLog.</td></tr></tbody></table></div><h3
id="Hystrix-InMessageHeaders">In Message Headers</h3><p>Used to override URI
options per message basis.</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>CamelHystrixClearCacheFirst</p></td><td
colspan="1" rowspan="1" class="confluenceTd">Boolean</td><td colspan="1"
rowspan="1" class="confluenceTd"
><p>Description and default value provided in the URI options section
>above.</p></td></tr><tr><td colspan="1" rowspan="1"
>class="confluenceTd"><p>CamelHystrixRequestContex</p></td><td colspan="1"
>rowspan="1" class="confluenceTd">HystrixRequestContext</td><td colspan="1"
>rowspan="1" class="confluenceTd"><p>Description and default value provided in
>the URI options section above.</p></td></tr><tr><td colspan="1" rowspan="1"
>class="confluenceTd"><p>CamelHystrixGroupKey</p></td><td colspan="1"
>rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1"
>rowspan="1" class="confluenceTd">Description and default value provided in
>the URI options section above.</td></tr><tr><td colspan="1" rowspan="1"
>class="confluenceTd"><p>CamelHystrixCommandKey</p></td><td colspan="1"
>rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1"
>rowspan="1" class="confluenceTd"><p>Description and default value provided in
>the URI options section above.</p></td></tr><tr><td colspan="1" rowspan="
1" class="confluenceTd"><p>CamelHystrixThreadPoolKey</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Description and default value provided in the URI
options section above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixRunEndpointId</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Description and default value provided in the URI
options section above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixFallbackEndpointId</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Description and default value provided in the URI
options section above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixCorePoolSize</p></td><td colspan="1"
rowspan="1" class="confluenceTd
"><p>Integer</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Description and default value provided in the URI
options section above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixKeepAliveTime</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Integer</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Description and default value provided in the URI
options section above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixMaxQueueSize</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Integer</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Description and default value provided in the URI
options section above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixQueueSizeRejectionThreshold</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Integer</p></td><td colspan="1"
rowspan="1" class="confluenceTd">Description and default va
lue provided in the URI options section above.</td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p>CamelHystrixThreadPoolRollingNumberStatisticalWindowInMilliseconds</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Integer</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Description and default value
provided in the URI options section above.</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p>CamelHystrixThreadPoolRollingNumberStatisticalWindowBuckets</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Integer</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Description and default value
provided in the URI options section above.</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p>CamelHystrixCircuitBreakerEnabled</p></td><td
colspan="1" rowspan="1" class="confluenceTd">Boolean</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Description and default value provided in
the URI options secti
on above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixCircuitBreakerErrorThresholdPercentage</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Integer</p></td><td
colspan="1" rowspan="1" class="confluenceTd">Description and default value
provided in the URI options section above.</td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p>CamelHystrixCircuitBreakerForceClosed</p></td><td
colspan="1" rowspan="1" class="confluenceTd">Boolean</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Description and default value provided in
the URI options section above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixCircuitBreakerForceOpen</td><td colspan="1"
rowspan="1" class="confluenceTd">Boolean</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Description and default value provided in the URI
options section above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystri
xCircuitBreakerRequestVolumeThreshold</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Integer</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Description and default value provided in the URI
options section above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixCircuitBreakerSleepWindowInMilliseconds</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Integer</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Description and default value
provided in the URI options section above.</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd">CamelHystrixExecutionIsolationSemaphoreMaxConcurrentRequests</td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Integer</p></td><td
colspan="1" rowspan="1" class="confluenceTd">Description and default value
provided in the URI options section above.</td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd">CamelHystrixExecutionIsolationStrategy</td><td
colspa
n="1" rowspan="1" class="confluenceTd">String</td><td colspan="1" rowspan="1"
class="confluenceTd">Description and default value provided in the URI options
section above.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixExecutionIsolationThreadInterruptOnTimeout</td><td
colspan="1" rowspan="1" class="confluenceTd">Boolean</td><td colspan="1"
rowspan="1" class="confluenceTd">Description and default value provided in the
URI options section above.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixExecutionTimeoutInMilliseconds</td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Integer</p></td><td colspan="1"
rowspan="1" class="confluenceTd">Description and default value provided in the
URI options section above.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixExecutionTimeoutEnabled</td><td colspan="1"
rowspan="1" class="confluenceTd">Boolean</td><td colspan="1" rowspan="1"
class="confluenceTd">Descriptio
n and default value provided in the URI options section
above.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixFallbackIsolationSemaphoreMaxConcurrentRequests</td><td
colspan="1" rowspan="1" class="confluenceTd">Integer</td><td colspan="1"
rowspan="1" class="confluenceTd">Description and default value provided in the
URI options section above.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixFallbackEnabled</td><td colspan="1"
rowspan="1" class="confluenceTd">Boolean</td><td colspan="1" rowspan="1"
class="confluenceTd">Description and default value provided in the URI options
section above.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixMetricsHealthSnapshotIntervalInMilliseconds</td><td
colspan="1" rowspan="1" class="confluenceTd">Integer</td><td colspan="1"
rowspan="1" class="confluenceTd">Description and default value provided in the
URI options section above.</td></tr><tr><td colspan="1" rowspan="1" cl
ass="confluenceTd">CamelHystrixMetricsRollingPercentileBucketSize</td><td
colspan="1" rowspan="1" class="confluenceTd">Integer</td><td colspan="1"
rowspan="1" class="confluenceTd">Description and default value provided in the
URI options section above.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixMetricsRollingPercentileEnabled</td><td
colspan="1" rowspan="1" class="confluenceTd">Boolean</td><td colspan="1"
rowspan="1" class="confluenceTd">Description and default value provided in the
URI options section above.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixMetricsRollingPercentileWindowInMilliseconds</td><td
colspan="1" rowspan="1" class="confluenceTd">Integer</td><td colspan="1"
rowspan="1" class="confluenceTd">Description and default value provided in the
URI options section above.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixMetricsRollingPercentileWindowBuckets</td><td
colspan="1" rowspan="1" c
lass="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd">Description and default value provided in the URI options
section above.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixMetricsRollingStatisticalWindowInMilliseconds</td><td
colspan="1" rowspan="1" class="confluenceTd">Integer</td><td colspan="1"
rowspan="1" class="confluenceTd">Description and default value provided in the
URI options section above.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixMetricsRollingStatisticalWindowBuckets</td><td
colspan="1" rowspan="1" class="confluenceTd">Integer</td><td colspan="1"
rowspan="1" class="confluenceTd">Description and default value provided in the
URI options section above.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixRequestCacheEnabled</td><td colspan="1"
rowspan="1" class="confluenceTd">Boolean</td><td colspan="1" rowspan="1"
class="confluenceTd">Description and default valu
e provided in the URI options section above.</td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd">CamelHystrixRequestLogEnabled</td><td
colspan="1" rowspan="1" class="confluenceTd">Boolean</td><td colspan="1"
rowspan="1" class="confluenceTd">Description and default value provided in the
URI options section above.</td></tr></tbody></table></div><h3
id="Hystrix-OutMessageHeaders">Out Message Headers</h3><p>Mainly to provide
metrics information.</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd">CamelHystrixRequestContex</td><td colspan="1"
rowspan="1" class="confluenceTd">CamelHystrixRequestContex</td><td colspan="1"
rowspan="1" class="confluenceTd">The default CamelHystrixRequestContex created
during p
roducer startup.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixCommandMetricsTotalRequests</td><td
colspan="1" rowspan="1" class="confluenceTd">long</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Number of requests during rolling window
(failure + success + timeout + threadPoolRejected +
semaphoreRejected).</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixCommandMetricsErrorCount</p></td><td
colspan="1" rowspan="1" class="confluenceTd">long</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Number of failed requests during rolling
window (failure + timeout + threadPoolRejected +
semaphoreRejected).</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixCommandMetricsErrorPercentage</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>int</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>errorCount / totalCount *
100.</p></td></tr><tr><td colspan="1" rowspan="1" class=
"confluenceTd"><p>CamelHystrixCommandMetricsCurrentConcurrentExecutionCount</p></td><td
colspan="1" rowspan="1" class="confluenceTd">int</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Current number of concurrent executions of
HystrixCommand#run().</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixCommandMetricsExecutionTimeMean</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>int</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>The mean (average) execution time (in
milliseconds) for the HystrixCommand#run().</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd">CamelHystrixCommandMetricsRollingMaxConcurrentExecutions</td><td
colspan="1" rowspan="1" class="confluenceTd">long</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Get the max value of values in all buckets
for the given HystrixRollingNumberEvent.</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd">CamelHystrixCommandMetricsTotalTi
meMean</td><td colspan="1" rowspan="1" class="confluenceTd">int</td><td
colspan="1" rowspan="1" class="confluenceTd"><p>The mean (average) execution
time (in milliseconds) for HystrixCommand#execute().</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixThreadPoolMetricsCurrentActiveCount</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>int</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Returns the approximate number of threads
that are actively executing tasks.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixThreadPoolMetricsCumulativeCountThreadsExecuted</td><td
colspan="1" rowspan="1" class="confluenceTd"><p>long</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Cumulative count of number of threads
executed since the start of the application.</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p>CamelHystrixThreadPoolMetricsCurrentCompletedTaskCount</p></td><td
colspan="1"
rowspan="1" class="confluenceTd">long</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Returns the approximate total number of tasks that have
completed execution.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixThreadPoolMetricsCurrentCorePoolSize</p></td><td
colspan="1" rowspan="1" class="confluenceTd">int</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Returns the core number of
threads.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixThreadPoolMetricsCurrentLargestPoolSize</p></td><td
colspan="1" rowspan="1" class="confluenceTd">int</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Returns the largest number of threads that
have ever simultaneously been in the pool.</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p>CamelHystrixThreadPoolMetricsCurrentMaximumPoolSize</p></td><td
colspan="1" rowspan="1" class="confluenceTd">int</td><td colspan="1"
rowspan="1" class="confluenc
eTd"><p>Returns the maximum allowed number of threads.</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixThreadPoolMetricsCurrentPoolSize</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>int</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Returns the current number of threads in
the pool.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixThreadPoolMetricsCurrentQueueSize</p></td><td
colspan="1" rowspan="1" class="confluenceTd">int</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Current size of BlockingQueue used by the
thread-pool.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixThreadPoolMetricsCurrentTaskCount</p></td><td
colspan="1" rowspan="1" class="confluenceTd">long</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Returns the approximate total number of
tasks that have ever been scheduled for execution.</p></td></tr><tr><td
colspan="1" rowspan="
1"
class="confluenceTd">CamelHystrixThreadPoolMetricsRollingCountThreadsExecuted</td><td
colspan="1" rowspan="1" class="confluenceTd">long</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Rolling count of number of threads executed
during rolling statistical window.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixThreadPoolMetricsRollingMaxActiveThreads</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>long</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Rolling max number of active threads during
rolling statistical window.</p></td></tr></tbody></table></div><h3
id="Hystrix-Example">Example</h3><p>Below is an example route that with Hystrix
endpoint that protects agains slow operation and fallbacks to a different
endpoint.</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeContent panelContent pdl">
+</div></div><h3 id="Hystrix-URIOptions">URI Options</h3><p>All URI options can
be overriden through message headers. Most of the default values are coming
from Hystrix itself.</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd">commandKey</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixCommand</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Used to identify a HystrixCommand instance for
statistics, circuit-breaker, properties, etc. By default this will be derived
from the instance class name.</p></td></tr><tr><td colspan="1" rowspan="1" clas
s="confluenceTd">threadPoolKey</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>null</p></td><td colspan="1" rowspan="1"
class="confluenceTd">String</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Used to define which thread-pool this command should
run in. By default this is derived from the
HystrixCommandGroupKey.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">cacheKeyExpression</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>null</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Expression</p></td><td colspan="1" rowspan="1"
class="confluenceTd">Camel expression to use for generating cache
key.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">initializeRequestContext</td><td colspan="1" rowspan="1"
class="confluenceTd">false</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Boolean</p></td><td colspan="1" rowspan="1"
class="confluenceTd">When true, Camel will initialize a HystrixRequestContext
during producer
startup and use it for request scoped caching and request scoped
logging.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>runEndpointId</p></td><td colspan="1" rowspan="1"
class="confluenceTd">null</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>String (mandatory)</p></td><td colspan="1" rowspan="1"
class="confluenceTd">Camel Endpoint ID from the same Camel Context that should
be executed from Hystrix.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>fallbackEndpointId</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>null</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1"
class="confluenceTd">Camel Endpoint ID from the same Camel Context that should
be executed from Hystrix as fallback when runEndpointId fails.</td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd">corePoolSize</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>10</p></td><td colspan="1" rowspan="1" cl
ass="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>This property sets the core thread-pool size. This is
the maximum number of HystrixCommands that can execute
concurrently.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">keepAliveTime</td><td colspan="1" rowspan="1"
class="confluenceTd">1</td><td colspan="1" rowspan="1"
class="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd">This property sets the keep-alive time, in
minutes.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">maxQueueSize</td><td colspan="1" rowspan="1"
class="confluenceTd">-1</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Integer</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>This property sets the maximum queue size of the
BlockingQueue implementation.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">queueSizeRejectionThreshold</td><td colspan="1"
rowspan="1" class="confluenceTd">5</td><td
colspan="1" rowspan="1" class="confluenceTd">Integer</td><td colspan="1"
rowspan="1" class="confluenceTd">This property sets the queue size rejection
threshold — an artificial maximum queue size at which rejections will
occur even if maxQueueSize has not been reached.</td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd">threadPoolMetricsRollingStatisticalWindowInMilliseconds</td><td
colspan="1" rowspan="1" class="confluenceTd">10000</td><td colspan="1"
rowspan="1" class="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd">This property sets the duration of the statistical rolling
window, in milliseconds. This is how long metrics are kept for the thread
pool.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">threadPoolMetricsRollingStatisticalWindowBuckets</td><td
colspan="1" rowspan="1" class="confluenceTd">10</td><td colspan="1" rowspan="1"
class="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd">This prope
rty sets the number of buckets the rolling statistical window is divided
into.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">circuitBreakerEnabled</td><td colspan="1" rowspan="1"
class="confluenceTd">true</td><td colspan="1" rowspan="1"
class="confluenceTd">Boolean</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>This property determines whether a circuit breaker will
be used to track health and to short-circuit requests if it
trips.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">circuitBreakerErrorThresholdPercentage</td><td colspan="1"
rowspan="1" class="confluenceTd">50</td><td colspan="1" rowspan="1"
class="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>This property sets the error percentage at or above
which the circuit should trip open and start short-circuiting requests to
fallback logic.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">circuitBreakerForceClosed</td><td colspan="1" rows
pan="1" class="confluenceTd">false</td><td colspan="1" rowspan="1"
class="confluenceTd">Boolean</td><td colspan="1" rowspan="1"
class="confluenceTd">This property, if true, forces the circuit breaker into a
closed state in which it will allow requests regardless of the error
percentage.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">circuitBreakerForceOpen</td><td colspan="1" rowspan="1"
class="confluenceTd">false</td><td colspan="1" rowspan="1"
class="confluenceTd">Boolean</td><td colspan="1" rowspan="1"
class="confluenceTd">This property, if true, forces the circuit breaker into an
open (tripped) state in which it will reject all requests.</td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd">circuitBreakerRequestVolumeThreshold</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>20</p></td><td colspan="1" rowspan="1"
class="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd">This property sets the minimum number of requests in a r
olling window that will trip the circuit.</td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd">circuitBreakerSleepWindowInMilliseconds</td><td
colspan="1" rowspan="1" class="confluenceTd">5000</td><td colspan="1"
rowspan="1" class="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd">This property sets the amount of time, after tripping the
circuit, to reject requests before allowing attempts again to determine if the
circuit should again be closed.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">executionIsolationSemaphoreMaxConcurrentRequests</td><td
colspan="1" rowspan="1" class="confluenceTd"><p>10</p></td><td colspan="1"
rowspan="1" class="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>This property sets the maximum number of requests
allowed to a HystrixCommand.run() method when you are using
ExecutionIsolationStrategy.SEMAPHORE.</p><p>If this maximum concurrent limit is
hit then subsequent requests wi
ll be rejected.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">executionIsolationStrategy</td><td colspan="1" rowspan="1"
class="confluenceTd">THREAD</td><td colspan="1" rowspan="1"
class="confluenceTd">String</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>This property indicates which isolation strategy
HystrixCommand.run() executes with, one of the following two
choices:</p><ul><li>THREAD — it executes on a separate thread and
concurrent requests are limited by the number of threads in the
thread-pool</li><li>SEMAPHORE — it executes on the calling thread and
concurrent requests are limited by the semaphore
count</li></ul></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">executionIsolationThreadInterruptOnTimeout</td><td
colspan="1" rowspan="1" class="confluenceTd">true</td><td colspan="1"
rowspan="1" class="confluenceTd">Boolean</td><td colspan="1" rowspan="1"
class="confluenceTd">This property indicates whether the HystrixComma
nd.run() execution should be interrupted when a timeout
occurs.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">executionTimeoutInMilliseconds</td><td colspan="1"
rowspan="1" class="confluenceTd">1000</td><td colspan="1" rowspan="1"
class="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>This property sets the time in milliseconds after which
the caller will observe a timeout and walk away from the command
execution.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">executionTimeoutEnabled</td><td colspan="1" rowspan="1"
class="confluenceTd">true</td><td colspan="1" rowspan="1"
class="confluenceTd">Boolean</td><td colspan="1" rowspan="1"
class="confluenceTd">This property indicates whether the HystrixCommand.run()
execution should have a timeout.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">fallbackIsolationSemaphoreMaxConcurrentRequests</td><td
colspan="1" rowspan="1" class="confluenceTd">10</td><td colspan
="1" rowspan="1" class="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd">This property sets the maximum number of requests a
HystrixCommand.getFallback() method is allowed to make from the calling
thread.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">fallbackEnabled</td><td colspan="1" rowspan="1"
class="confluenceTd">true</td><td colspan="1" rowspan="1"
class="confluenceTd">Boolean</td><td colspan="1" rowspan="1"
class="confluenceTd">This property determines whether a call to
HystrixCommand.getFallback() will be attempted when failure or rejection
occurs.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">metricsHealthSnapshotIntervalInMilliseconds</td><td
colspan="1" rowspan="1" class="confluenceTd">500</td><td colspan="1"
rowspan="1" class="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd">This property sets the time to wait, in milliseconds,
between allowing health snapshots to be taken that calculate
success and error percentages and affect circuit breaker
status.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">metricsRollingPercentileBucketSize</td><td colspan="1"
rowspan="1" class="confluenceTd">100</td><td colspan="1" rowspan="1"
class="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>This property sets the maximum number of execution
times that are kept per bucket. If more executions occur during the time they
will wrap around and start over-writing at the beginning of the
bucket.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">metricsRollingPercentileEnabled</td><td colspan="1"
rowspan="1" class="confluenceTd">true</td><td colspan="1" rowspan="1"
class="confluenceTd">Boolean</td><td colspan="1" rowspan="1"
class="confluenceTd">This property indicates whether execution latencies should
be tracked and calculated as percentiles. If they are disabled, all summary
statistics (mean, percentiles) are returned as -1.</td>
</tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">metricsRollingPercentileWindowInMilliseconds</td><td
colspan="1" rowspan="1" class="confluenceTd">60000</td><td colspan="1"
rowspan="1" class="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd">This property sets the duration of the rolling window in
which execution times are kept to allow for percentile calculations, in
milliseconds.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">metricsRollingPercentileWindowBuckets</td><td colspan="1"
rowspan="1" class="confluenceTd">6</td><td colspan="1" rowspan="1"
class="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd">This property sets the number of buckets the
rollingPercentile window will be divided into.</td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd">metricsRollingStatisticalWindowInMilliseconds</td><td
colspan="1" rowspan="1" class="confluenceTd">10000</td><td colspan="1"
rowspan="1" class="confluenceT
d">Integer</td><td colspan="1" rowspan="1" class="confluenceTd"><p>The
following properties are related to capturing metrics from HystrixCommand and
HystrixObservableCommand execution.</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd">metricsRollingStatisticalWindowBuckets</td><td
colspan="1" rowspan="1" class="confluenceTd">10</td><td colspan="1" rowspan="1"
class="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd">This property sets the number of buckets the rolling
statistical window is divided into.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">requestCacheEnabled</td><td colspan="1" rowspan="1"
class="confluenceTd">true</td><td colspan="1" rowspan="1"
class="confluenceTd">Boolean</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>This property indicates whether
HystrixCommand.getCacheKey() should be used with HystrixRequestCache to provide
de-duplication functionality via request-scoped caching.</p></td></tr><tr><td c
olspan="1" rowspan="1" class="confluenceTd">requestLogEnabled</td><td
colspan="1" rowspan="1" class="confluenceTd">true</td><td colspan="1"
rowspan="1" class="confluenceTd">Boolean</td><td colspan="1" rowspan="1"
class="confluenceTd">This property indicates whether HystrixCommand execution
and events should be logged to
HystrixRequestLog.</td></tr></tbody></table></div><h3
id="Hystrix-InMessageHeaders">In Message Headers</h3><p>Used to override URI
options per message basis.</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>CamelHystrixClearCacheFirst</p></td><td
colspan="1" rowspan="1" class="confluenceTd">Boolean</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Description and default value provid
ed in the URI options section above.</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>CamelHystrixRequestContex</p></td><td
colspan="1" rowspan="1" class="confluenceTd">HystrixRequestContext</td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Description and default value
provided in the URI options section above.</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>CamelHystrixGroupKey</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1"
rowspan="1" class="confluenceTd">Description and default value provided in the
URI options section above.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixCommandKey</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Description and default value provided in the URI
options section above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixT
hreadPoolKey</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Description and default value provided in the URI
options section above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixRunEndpointId</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Description and default value provided in the URI
options section above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixFallbackEndpointId</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Description and default value provided in the URI
options section above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixCorePoolSize</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Integer</p></td><td colspan="1" row
span="1" class="confluenceTd"><p>Description and default value provided in the
URI options section above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixKeepAliveTime</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Integer</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Description and default value provided in the URI
options section above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixMaxQueueSize</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Integer</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Description and default value provided in the URI
options section above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixQueueSizeRejectionThreshold</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Integer</p></td><td colspan="1"
rowspan="1" class="confluenceTd">Description and default value provided in the
URI options section
above.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixThreadPoolMetricsRollingStatisticalWindowInMilliseconds</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Integer</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Description and default value
provided in the URI options section above.</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p>CamelHystrixThreadPoolRollingNumberStatisticalWindowBuckets</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Integer</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Description and default value
provided in the URI options section above.</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p>CamelHystrixCircuitBreakerEnabled</p></td><td
colspan="1" rowspan="1" class="confluenceTd">Boolean</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Description and default value provided in
the URI options section above.</p></td></tr><tr><td colspan=
"1" rowspan="1"
class="confluenceTd"><p>CamelHystrixCircuitBreakerErrorThresholdPercentage</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Integer</p></td><td
colspan="1" rowspan="1" class="confluenceTd">Description and default value
provided in the URI options section above.</td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p>CamelHystrixCircuitBreakerForceClosed</p></td><td
colspan="1" rowspan="1" class="confluenceTd">Boolean</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Description and default value provided in
the URI options section above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixCircuitBreakerForceOpen</td><td colspan="1"
rowspan="1" class="confluenceTd">Boolean</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Description and default value provided in the URI
options section above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixCircuitBreakerRequestVolumeThreshold</
p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Integer</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Description and default value
provided in the URI options section above.</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p>CamelHystrixCircuitBreakerSleepWindowInMilliseconds</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Integer</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Description and default value
provided in the URI options section above.</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd">CamelHystrixExecutionIsolationSemaphoreMaxConcurrentRequests</td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Integer</p></td><td
colspan="1" rowspan="1" class="confluenceTd">Description and default value
provided in the URI options section above.</td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd">CamelHystrixExecutionIsolationStrategy</td><td
colspan="1" rowspan="1" class="confluenceTd">
String</td><td colspan="1" rowspan="1" class="confluenceTd">Description and
default value provided in the URI options section above.</td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixExecutionIsolationThreadInterruptOnTimeout</td><td
colspan="1" rowspan="1" class="confluenceTd">Boolean</td><td colspan="1"
rowspan="1" class="confluenceTd">Description and default value provided in the
URI options section above.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixExecutionTimeoutInMilliseconds</td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Integer</p></td><td colspan="1"
rowspan="1" class="confluenceTd">Description and default value provided in the
URI options section above.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixExecutionTimeoutEnabled</td><td colspan="1"
rowspan="1" class="confluenceTd">Boolean</td><td colspan="1" rowspan="1"
class="confluenceTd">Description and default value provided in the URI
options section above.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixFallbackIsolationSemaphoreMaxConcurrentRequests</td><td
colspan="1" rowspan="1" class="confluenceTd">Integer</td><td colspan="1"
rowspan="1" class="confluenceTd">Description and default value provided in the
URI options section above.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixFallbackEnabled</td><td colspan="1"
rowspan="1" class="confluenceTd">Boolean</td><td colspan="1" rowspan="1"
class="confluenceTd">Description and default value provided in the URI options
section above.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixMetricsHealthSnapshotIntervalInMilliseconds</td><td
colspan="1" rowspan="1" class="confluenceTd">Integer</td><td colspan="1"
rowspan="1" class="confluenceTd">Description and default value provided in the
URI options section above.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixMetricsR
ollingPercentileBucketSize</td><td colspan="1" rowspan="1"
class="confluenceTd">Integer</td><td colspan="1" rowspan="1"
class="confluenceTd">Description and default value provided in the URI options
section above.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixMetricsRollingPercentileEnabled</td><td
colspan="1" rowspan="1" class="confluenceTd">Boolean</td><td colspan="1"
rowspan="1" class="confluenceTd">Description and default value provided in the
URI options section above.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixMetricsRollingPercentileWindowInMilliseconds</td><td
colspan="1" rowspan="1" class="confluenceTd">Integer</td><td colspan="1"
rowspan="1" class="confluenceTd">Description and default value provided in the
URI options section above.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixMetricsRollingPercentileWindowBuckets</td><td
colspan="1" rowspan="1" class="confluenceTd">Integer</td><td col
span="1" rowspan="1" class="confluenceTd">Description and default value
provided in the URI options section above.</td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd">CamelHystrixMetricsRollingStatisticalWindowInMilliseconds</td><td
colspan="1" rowspan="1" class="confluenceTd">Integer</td><td colspan="1"
rowspan="1" class="confluenceTd">Description and default value provided in the
URI options section above.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixMetricsRollingStatisticalWindowBuckets</td><td
colspan="1" rowspan="1" class="confluenceTd">Integer</td><td colspan="1"
rowspan="1" class="confluenceTd">Description and default value provided in the
URI options section above.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixRequestCacheEnabled</td><td colspan="1"
rowspan="1" class="confluenceTd">Boolean</td><td colspan="1" rowspan="1"
class="confluenceTd">Description and default value provided in the URI options
section a
bove.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixRequestLogEnabled</td><td colspan="1"
rowspan="1" class="confluenceTd">Boolean</td><td colspan="1" rowspan="1"
class="confluenceTd">Description and default value provided in the URI options
section above.</td></tr></tbody></table></div><h3
id="Hystrix-OutMessageHeaders">Out Message Headers</h3><p>Mainly to provide
metrics information.</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd">CamelHystrixRequestContex</td><td colspan="1"
rowspan="1" class="confluenceTd">CamelHystrixRequestContex</td><td colspan="1"
rowspan="1" class="confluenceTd">The default CamelHystrixRequestContex created
during producer startup.</td></tr><tr><td colsp
an="1" rowspan="1"
class="confluenceTd">CamelHystrixCommandMetricsTotalRequests</td><td
colspan="1" rowspan="1" class="confluenceTd">long</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Number of requests during rolling window
(failure + success + timeout + threadPoolRejected +
semaphoreRejected).</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixCommandMetricsErrorCount</p></td><td
colspan="1" rowspan="1" class="confluenceTd">long</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Number of failed requests during rolling
window (failure + timeout + threadPoolRejected +
semaphoreRejected).</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixCommandMetricsErrorPercentage</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>int</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>errorCount / totalCount *
100.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixCommandMe
tricsCurrentConcurrentExecutionCount</p></td><td colspan="1" rowspan="1"
class="confluenceTd">int</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Current number of concurrent executions of
HystrixCommand#run().</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixCommandMetricsExecutionTimeMean</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>int</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>The mean (average) execution time (in
milliseconds) for the HystrixCommand#run().</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd">CamelHystrixCommandMetricsRollingMaxConcurrentExecutions</td><td
colspan="1" rowspan="1" class="confluenceTd">long</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Get the max value of values in all buckets
for the given HystrixRollingNumberEvent.</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd">CamelHystrixCommandMetricsTotalTimeMean</td><td
colspan="1" rowspan="1"
class="confluenceTd">int</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>The mean (average) execution time (in milliseconds) for
HystrixCommand#execute().</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixThreadPoolMetricsCurrentActiveCount</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>int</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Returns the approximate number of threads
that are actively executing tasks.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelHystrixThreadPoolMetricsCumulativeCountThreadsExecuted</td><td
colspan="1" rowspan="1" class="confluenceTd"><p>long</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Cumulative count of number of threads
executed since the start of the application.</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p>CamelHystrixThreadPoolMetricsCurrentCompletedTaskCount</p></td><td
colspan="1" rowspan="1" class="confluenceTd">long<
/td><td colspan="1" rowspan="1" class="confluenceTd"><p>Returns the
approximate total number of tasks that have completed
execution.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixThreadPoolMetricsCurrentCorePoolSize</p></td><td
colspan="1" rowspan="1" class="confluenceTd">int</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Returns the core number of
threads.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixThreadPoolMetricsCurrentLargestPoolSize</p></td><td
colspan="1" rowspan="1" class="confluenceTd">int</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Returns the largest number of threads that
have ever simultaneously been in the pool.</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p>CamelHystrixThreadPoolMetricsCurrentMaximumPoolSize</p></td><td
colspan="1" rowspan="1" class="confluenceTd">int</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Returns the maximum allowed num
ber of threads.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixThreadPoolMetricsCurrentPoolSize</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>int</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Returns the current number of threads in
the pool.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixThreadPoolMetricsCurrentQueueSize</p></td><td
colspan="1" rowspan="1" class="confluenceTd">int</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Current size of BlockingQueue used by the
thread-pool.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixThreadPoolMetricsCurrentTaskCount</p></td><td
colspan="1" rowspan="1" class="confluenceTd">long</td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Returns the approximate total number of
tasks that have ever been scheduled for execution.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd">CamelHystrixThr
eadPoolMetricsRollingCountThreadsExecuted</td><td colspan="1" rowspan="1"
class="confluenceTd">long</td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Rolling count of number of threads executed during
rolling statistical window.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>CamelHystrixThreadPoolMetricsRollingMaxActiveThreads</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>long</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Rolling max number of active threads during
rolling statistical window.</p></td></tr></tbody></table></div><h3
id="Hystrix-Example">Example</h3><p>Below is an example route that with Hystrix
endpoint that protects agains slow operation and fallbacks to a different
endpoint.</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeContent panelContent pdl">
<script class="brush: java; gutter: false; theme: Default"
type="syntaxhighlighter"><![CDATA[@Override
protected CamelContext createCamelContext() throws Exception {
SimpleRegistry registry = new SimpleRegistry();