You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by bu...@apache.org on 2016/03/27 22:19:30 UTC
svn commit: r983926 - in /websites/production/camel/content:
cache/main.pageCache hystrix.html
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();