...
Name | Default Value | Type | Description |
---|---|---|---|
commandKey | Node id | String | 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. |
groupKey | CamelHystrix | String | Used to identify the hystrix command instance group being used by the EIP to correlate statistics, circuit-breaker, properties, etc. |
threadPoolKey | null | String | Used to define which thread-pool this command should run in. By default this is using the same key as the group key. |
corePoolSize | 10 | Integer | This property sets the core thread-pool size. This is the maximum number of HystrixCommands that can execute concurrently. |
keepAliveTime | 1 | Integer | This property sets the keep-alive time, in minutes. |
maxQueueSize | -1 | Integer | This property sets the maximum queue size of the BlockingQueue implementation. |
queueSizeRejectionThreshold | 5 | Integer | 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. |
threadPoolMetricsRollingStatisticalWindowInMilliseconds | 10000 | Integer | This property sets the duration of the statistical rolling window, in milliseconds. This is how long metrics are kept for the thread pool. |
threadPoolMetricsRollingStatisticalWindowBuckets | 10 | Integer | This property sets the number of buckets the rolling statistical window is divided into. |
circuitBreakerEnabled | true | Boolean | This property determines whether a circuit breaker will be used to track health and to short-circuit requests if it trips. |
circuitBreakerErrorThresholdPercentage | 50 | Integer | This property sets the error percentage at or above which the circuit should trip open and start short-circuiting requests to fallback logic. |
circuitBreakerForceClosed | false | Boolean | This property, if true, forces the circuit breaker into a closed state in which it will allow requests regardless of the error percentage. |
circuitBreakerForceOpen | false | Boolean | This property, if true, forces the circuit breaker into an open (tripped) state in which it will reject all requests. |
circuitBreakerRequestVolumeThreshold | 20 | Integer | This property sets the minimum number of requests in a rolling window that will trip the circuit. |
circuitBreakerSleepWindowInMilliseconds | 5000 | Integer | 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. |
executionIsolationSemaphoreMaxConcurrentRequests | 10 | Integer | This property sets the maximum number of requests allowed to a HystrixCommand.run() method when you are using ExecutionIsolationStrategy.SEMAPHORE. If this maximum concurrent limit is hit then subsequent requests will be rejected. |
executionIsolationStrategy | THREAD | String | This property indicates which isolation strategy HystrixCommand.run() executes with, one of the following two choices:
|
executionIsolationThreadInterruptOnTimeout | true | Boolean | This property indicates whether the HystrixCommand.run() execution should be interrupted when a timeout occurs. |
executionTimeoutInMilliseconds | 1000 | Integer | This property sets the time in milliseconds after which the caller will observe a timeout and walk away from the command execution. |
executionTimeoutEnabled | true | Boolean | This property indicates whether the HystrixCommand.run() execution should have a timeout. |
fallbackIsolationSemaphoreMaxConcurrentRequests | 10 | Integer | This property sets the maximum number of requests a HystrixCommand.getFallback() method is allowed to make from the calling thread. |
fallbackEnabled | true | Boolean | This property determines whether a call to HystrixCommand.getFallback() will be attempted when failure or rejection occurs. |
metricsHealthSnapshotIntervalInMilliseconds | 500 | Integer | 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. |
metricsRollingPercentileBucketSize | 100 | Integer | 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. |
metricsRollingPercentileEnabled | true | Boolean | 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. |
metricsRollingPercentileWindowInMilliseconds | 60000 | Integer | This property sets the duration of the rolling window in which execution times are kept to allow for percentile calculations, in milliseconds. |
metricsRollingPercentileWindowBuckets | 6 | Integer | This property sets the number of buckets the rollingPercentile window will be divided into. |
metricsRollingStatisticalWindowInMilliseconds | 10000 | Integer | The following properties are related to capturing metrics from HystrixCommand and HystrixObservableCommand execution. |
metricsRollingStatisticalWindowBuckets | 10 | Integer | This property sets the number of buckets the rolling statistical window is divided into. |
requestLogEnabled | true | Boolean | This property indicates whether HystrixCommand execution and events should be logged to HystrixRequestLog. |
...
Code Block |
---|
from("direct:start") .hystrix() .to("http://fooservice.com/slow") .fallbackonFallback() .transform().constant("Fallback message") .end() .to("mock:result"); |
...
Code Block | ||||
---|---|---|---|---|
| ||||
<camelContext xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="direct:start"/> <hystrix> <to uri="http://fooservice.com/slow"/> <fallback><onFallback> <transform> <constant>Fallback message</constant> </transform> </fallback>onFallback> </hystrix> <to uri="mock:result"/> </route> </camelContext> |
...
Code Block |
---|
from("direct:start") .hystrix() .configurehystrixConfiguration() .executionTimeoutInMilliseconds(5000).circuitBreakerSleepWindowInMilliseconds(10000) .end() .to("http://fooservice.com/slow") .fallbackonFallback() .transform().constant("Fallback message") .end() .to("mock:result"); |
...
Code Block | ||||
---|---|---|---|---|
| ||||
<camelContext xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="direct:start"/> <hystrix> <hystrixConfiguration executionTimeoutInMilliseconds="5000" circuitBreakerSleepWindowInMilliseconds="10000"/> <to uri="http://fooservice.com/slow"/> <fallback><onFallback> <transform> <constant>Fallback message</constant> </transform> </fallback>onFallback> </hystrix> <to uri="mock:result"/> </route> </camelContext> |
...
Code Block | ||||
---|---|---|---|---|
| ||||
<camelContext xmlns="http://camel.apache.org/schema/spring"> <!-- a shared config which you can refer to from all your hystrix EIPs --> <hystrixConfiguration id="sharedConfig" executionTimeoutInMilliseconds="5000" circuitBreakerSleepWindowInMilliseconds="10000"/> <route> <from uri="direct:start"/> <hystrix hystrixConfigurationRef="sharedConfig"> <to uri="http://fooservice.com/slow"/> <fallback><onFallback> <transform> <constant>Fallback message</constant> </transform> </fallback>onFallback> </hystrix> <to uri="mock:result"/> </route> </camelContext> |