Author: buildbot
Date: Thu Oct  6 13:18:59 2016
New Revision: 998962

Log:
Production update by buildbot for camel

Modified:
    websites/production/camel/content/cache/main.pageCache
    websites/production/camel/content/hystrix-eip.html

Modified: websites/production/camel/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.

Modified: websites/production/camel/content/hystrix-eip.html
==============================================================================
--- websites/production/camel/content/hystrix-eip.html (original)
+++ websites/production/camel/content/hystrix-eip.html Thu Oct  6 13:18:59 2016
@@ -85,14 +85,14 @@
        <tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><h2 id="HystrixEIP-HystrixEIP">Hystrix 
EIP</h2><p><strong>Available as of Camel 2.18</strong></p><p>The hystrix EIP 
provides integration with Netflix <a shape="rect" class="external-link" 
href="https://github.com/Netflix/Hystrix"; rel="nofollow">Hystrix</a>&#160;to be 
used as circuit breaker in the Camel routes. 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>Maven users 
will need to add the following dependency to their pom.xml for this 
EIP:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+<div class="wiki-content maincontent"><h2 id="HystrixEIP-HystrixEIP">Hystrix 
EIP</h2><p><strong>Available as of Camel 2.18</strong></p><p>The hystrix EIP 
provides integration with Netflix <a shape="rect" class="external-link" 
href="https://github.com/Netflix/Hystrix"; rel="nofollow">Hystrix</a>&#160;to be 
used as circuit breaker in the Camel routes. 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>Maven users 
will need to add the following dependency to 
their&#160;<strong><code>pom.xml</code></strong> to use this EIP:</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[&lt;dependency&gt;
     &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
     &lt;artifactId&gt;camel-hystrix&lt;/artifactId&gt;
     &lt;version&gt;x.x.x&lt;/version&gt;&lt;!-- use the same version as your 
Camel core version --&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div><h3 id="HystrixEIP-ConfigurationOptions">Configuration 
Options</h3><p>The EIP supports the following options. 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">Node id</td><td colspan="1" rowspan="1" 
class="confluenceTd">String</td><td colspan="1" rowspan="1" 
class="confluenceTd">Used to identify the hystrix command. This option cannot 
be configured but is locked down to be the node id to make the command 
unique.</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>groupKey</p></td><td colspan="1" ro
 wspan="1" class="confluenceTd"><p>CamelHystrix</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Used to identify the hystrix group being used by the 
EIP to correlate statistics, circuit-breaker, properties, 
etc.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>threadPoolKey</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"><p>Used to define which thread-pool this command should 
run in. By default this is using the same key as the group 
key.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>corePoolSize</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>10</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Integer</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>This property sets the core thread-pool si
 ze. This is the maximum number of HystrixCommands that can execute 
concurrently.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>keepAliveTime</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>1</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Integer</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>This property sets the keep-alive time, in 
minutes.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>maxQueueSize</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>-1</p></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"><p>queueSizeRejectionThreshold</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>5</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Integer</p></td><td 
 colspan="1" rowspan="1" class="confluenceTd"><p>This property sets the queue 
size rejection threshold &#8212; an artificial maximum queue size at which 
rejections will occur even if maxQueueSize has not been 
reached.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>threadPoolMetricsRollingStatisticalWindowInMilliseconds</p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>10000</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Integer</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>This property sets the duration of the statistical 
rolling window, in milliseconds. This is how long metrics are kept for the 
thread pool.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>threadPoolMetricsRollingStatisticalWindowBuckets</p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>10</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Integer</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>This property
  sets the number of buckets the rolling statistical window is divided 
into.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>circuitBreakerEnabled</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Boolean</p></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"><p>circuitBreakerErrorThresholdPercentage</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>50</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Integer</p></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"><p>circ
 uitBreakerForceClosed</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Boolean</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>This property, if true, forces the circuit breaker into 
a closed state in which it will allow requests regardless of the error 
percentage.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>circuitBreakerForceOpen</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Boolean</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>This property, if true, forces the circuit breaker into 
an open (tripped) state in which it will reject all 
requests.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>circuitBreakerRequestVolumeThreshold</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>20</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Integer<
 /p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>This property sets 
the minimum number of requests in a rolling window that will trip the 
circuit.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>circuitBreakerSleepWindowInMilliseconds</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>5000</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Integer</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>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.</p></td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p>executionIsolationSemaphoreMaxConcurrentRequests</p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>10</p></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 number of requests 
allowed t
 o 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"><p>executionIsolationStrategy</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>THREAD</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>String</p></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><p>THREAD &#8212; it executes on a separate thread and 
concurrent requests are limited by the number of threads in the 
thread-pool</p></li><li><p>SEMAPHORE &#8212; it executes on the calling thread 
and concurrent requests are limited by the semaphore 
count</p></li></ul></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>executionIsolationThreadInterruptOnTimeout</p></td><td 
colspan=
 "1" rowspan="1" class="confluenceTd"><p>true</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Boolean</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>This property indicates whether the 
HystrixCommand.run() execution should be interrupted when a timeout 
occurs.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>executionTimeoutInMilliseconds</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>1000</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Integer</p></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"><p>executionTimeoutEnabled</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Boolean</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>T
 his property indicates whether the HystrixCommand.run() execution should have 
a timeout.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>fallbackIsolationSemaphoreMaxConcurrentRequests</p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>10</p></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 number of requests a 
HystrixCommand.getFallback() method is allowed to make from the calling 
thread.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>fallbackEnabled</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Boolean</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>This property determines whether a call to 
HystrixCommand.getFallback() will be attempted when failure or rejection 
occurs.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">
 <p>metricsHealthSnapshotIntervalInMilliseconds</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>500</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Integer</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>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.</p></td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p>metricsRollingPercentileBucketSize</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>100</p></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 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"><p>metricsRolli
 ngPercentileEnabled</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Boolean</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>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.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p>metricsRollingPercentileWindowInMilliseconds</p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>60000</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Integer</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>This property sets the duration of the rolling window 
in which execution times are kept to allow for percentile calculations, in 
milliseconds.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>metricsRollingPercentileWindowBuckets</p></td><td 
colspan="1" rowspan="1" clas
 s="confluenceTd"><p>6</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Integer</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>This property sets the number of buckets the 
rollingPercentile window will be divided into.</p></td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p>metricsRollingStatisticalWindowInMilliseconds</p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>10000</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Integer</p></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"><p>metricsRollingStatisticalWindowBuckets</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>10</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Integer</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>This property sets the number
  of buckets the rolling statistical window is divided 
into.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>requestLogEnabled</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Boolean</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>This property indicates whether HystrixCommand 
execution and events should be logged to 
HystrixRequestLog.</p></td></tr></tbody></table></div><p>&#160;</p><h3 
id="HystrixEIP-Example">Example</h3><p>Below is an example route that with 
Hystrix endpoint that protects agains slow operation and fallbacks to the 
inlined fallback route. By default the timeout request is just 1000 millis (1 
sec) so the http endpoint has to be fairly quick to succeed.</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><h3 id="HystrixEIP-ConfigurationOptions">Configuration 
Options</h3><p>The EIP supports the following options. 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"><p><code>circuitBreakerEnabled</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Boolean</code></p></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"><p><code>circuitBreakerErrorThresholdPercentage</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><code>50</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Integer</code></p></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"><p><code>circuitBreakerForceClosed</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Boolean</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>This property, if 
<strong><code>true</code></strong>, forces the circuit breaker into a closed 
state in which it will allow requests regardless of the error 
percentage.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenc
 eTd"><p><code>circuitBreakerForceOpen</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Boolean</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>This property, if 
<strong><code>true</code></strong>, forces the circuit breaker into an open 
(tripped) state in which it will reject all requests.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>circuitBreakerRequestVolumeThreshold</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><code>20</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>This property sets the minimum number of 
requests in a rolling window that will trip the circuit.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>circuitBreakerSleepWindowInMilliseconds</code></p></td><td
 colspan="1" rows
 pan="1" class="confluenceTd"><p><code>5000</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Integer</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>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.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>commandKey</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Node id</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Used to identify the hystrix 
command. This option cannot be configured but is locked down to be the node id 
to make the command unique.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>corePoolSize</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>10</code></p></td><td cols
 pan="1" rowspan="1" class="confluenceTd"><p><code>Integer</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>This property sets the core 
thread-pool size. This is the maximum number 
of&#160;<strong><code>HystrixCommands</code></strong> that can execute 
concurrently.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>executionIsolationSemaphoreMaxConcurrentRequests</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><code>10</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>This property sets the maximum number of 
requests allowed to a&#160;<strong><code>HystrixCommand.run()</code></strong> 
method when you are using 
<strong><code>ExecutionIsolationStrategy.SEMAPHORE</code></strong>.</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
 "><p><code>executionIsolationStrategy</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>THREAD</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>This property indicates which isolation 
strategy&#160;<strong><code>HystrixCommand.run()</code></strong> executes with, 
one of the following two 
choices:</p><ul><li><p><strong><code>THREAD</code></strong> &#8212; it executes 
on a separate thread and concurrent requests are limited by the number of 
threads in the 
thread-pool</p></li><li><p><strong><code>SEMAPHORE</code></strong> &#8212; it 
executes on the calling thread and concurrent requests are limited by the 
semaphore count</p></li></ul></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>executionIsolationThreadInterruptOnTimeout</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td 
colspan="1" rowspan="1" c
 lass="confluenceTd"><p><code>Boolean</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>This property indicates whether 
the&#160;<strong><code>HystrixCommand.run()</code></strong> execution should be 
interrupted when a timeout occurs.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>executionTimeoutInMilliseconds</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>1000</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>This property sets the timeout in 
milliseconds for execution completion.</p></td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>executionTimeoutEnabled</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Boolean</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>This property in
 dicates whether the execution of 
<strong><code>HystrixCommand.run()</code></strong> should be 
timed.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>fallbackEnabled</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Boolean</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>This property determines 
whether a call 
to&#160;<strong><code>HystrixCommand.getFallback()</code></strong> will be 
attempted when failure or rejection occurs.</p></td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>fallbackIsolationSemaphoreMaxConcurrentRequests</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><code>10</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>This property sets the maximum number of 
requests a&#160;<strong><code>Hy
 strixCommand.getFallback()</code></strong> method is allowed to make from the 
calling thread.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>groupKey</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>CamelHystrix</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Used to identify the hystrix 
group being used by the EIP to correlate statistics, circuit-breaker, 
properties, etc.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>keepAliveTime</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>1</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Integer</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>This property sets the 
keep-alive time, in minutes.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>maxQueueSize</code></p></td><td
  colspan="1" rowspan="1" class="confluenceTd"><p><code>-1</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>This property sets the maximum queue size 
of the&#160;<strong><code>BlockingQueue</code></strong> 
implementation.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>metricsHealthSnapshotIntervalInMilliseconds</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><code>500</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>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.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>metricsRollingPercentileBucketSize</code></p></td><td
 colspan="1" rowspan="1" 
 class="confluenceTd"><p><code>100</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Integer</code></p></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"><p><code>metricsRollingPercentileEnabled</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Boolean</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>This property indicates whether execution 
latency should be tracked. The latency is calculated as a percentile. 
If&#160;<strong><code>false</code></strong> summary statistics (mean, 
percentiles) are returned as 
<strong><code>-1</code></strong>.</p></td></tr><tr><td colspan="1" row
 span="1" 
class="confluenceTd"><p><code>metricsRollingPercentileWindowBuckets</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><code>6</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>This property sets the number of buckets 
the&#160;<strong><code>rollingPercentile</code></strong> window will be divided 
into.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>metricsRollingPercentileWindowInMilliseconds</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><code>60000</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>This property sets the duration of the 
rolling window in which execution times are kept to allow for percentile 
calculations, in milliseconds.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>metri
 csRollingStatisticalWindowBuckets</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>10</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>This property sets the number of buckets 
the rolling statistical window is divided into.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>metricsRollingStatisticalWindowInMilliseconds</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><code>10000</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The following properties are related to 
capturing metrics from&#160;<strong><code>HystrixCommand</code></strong> 
and&#160;<strong><code>HystrixObservableCommand</code></strong> 
execution.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>queueSizeRejectionThreshold</code></p><
 /td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>5</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>This property sets the queue size rejection 
threshold &#8212; an artificial maximum queue size at which rejections will 
occur even if&#160;<strong><code>maxQueueSize</code></strong> has not been 
reached.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>requestLogEnabled</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Boolean</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>This property indicates 
whether&#160;<strong><code>HystrixCommand</code></strong> execution and events 
should be logged to 
<strong><code>HystrixRequestLog</code></strong>.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>threadPoolKey</
 code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>String</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Used to define which thread-pool this command should 
run in. By default this is using the same key as the group 
key.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>threadPoolMetricsRollingStatisticalWindowBuckets</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><code>10</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>This property sets the number of buckets 
the rolling statistical window is divided into.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>threadPoolMetricsRollingStatisticalWindowInMilliseconds</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><code>10000</code></p
 ></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1" 
 >rowspan="1" class="confluenceTd"><p>This property sets the duration of the 
 >statistical rolling window, in milliseconds. This is how long metrics are 
 >kept for the thread pool.</p></td></tr></tbody></table></div><p>&#160;</p><h3 
 >id="HystrixEIP-Example">Example</h3><p>Below is an example route showing an 
 >Hystrix endpoint that protects against slow operation by falling back to the 
 >in-lined fallback route. By default the timeout request is 
 >just&#160;<strong><code>1000ms</code></strong> so the HTTP endpoint has to be 
 >fairly quick to succeed.</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[from(&quot;direct:start&quot;)
     .hystrix()
         .to(&quot;http://fooservice.com/slow&quot;)
@@ -115,7 +115,7 @@
     &lt;to uri=&quot;mock:result&quot;/&gt;
   &lt;/route&gt;
 &lt;/camelContext&gt;]]></script>
-</div></div><h3 id="HystrixEIP-onFallbackvsonFallbackViaNetwork">onFallback vs 
onFallbackViaNetwork</h3><p>If you are using onFallback then that is intended 
to be local processing only where you can do a message transformation or call a 
bean or something as the fallback. If you need to call an external service over 
the network then you should use onFallbackViaNetwork that runs in another 
indepedent HystrixCommand that uses its own thread pool to not exhaust the 
first command.</p><h3 id="HystrixEIP-ConfiguringHystrixExample">Configuring 
Hystrix Example</h3><p>Hystrix has many options as listed in the table above. 
For example to set a higher timeout to 5 seconds, and also let the circuit 
breaker wait 10 seconds before attempting a request again when the state was 
tripped to be open.</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="HystrixEIP-onFallbackvsonFallbackViaNetwork">onFallback vs 
onFallbackViaNetwork</h3><p>If you are 
using&#160;<strong><code>onFallback</code></strong> then that is intended to be 
local processing only where you can do a message transformation or call a bean 
or something as the fallback. If you need to call an external service over the 
network then you should 
use&#160;<strong><code>onFallbackViaNetwork</code></strong> that runs in 
another independent&#160;<strong><code>HystrixCommand</code></strong> that uses 
its own thread pool to not exhaust the first command.</p><h3 
id="HystrixEIP-ConfiguringHystrixExample">Configuring Hystrix 
Example</h3><p>Hystrix has many options as listed in the table above. For 
example to set a higher timeout to&#160;<strong><code>5</code></strong> 
seconds, and also let the circuit breaker 
wait&#160;<strong><code>10</code></strong> seconds before attempting a request 
again when the state was tripped to be open.</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[from(&quot;direct:start&quot;)
     .hystrix()
         .hystrixConfiguration()


Reply via email to