...
Name | Default Value | Type | Description |
---|---|---|---|
|
|
| This property determines whether a circuit breaker will be used to track health and to short-circuit requests if it trips. |
|
|
| This property sets the error percentage at or above which the circuit should trip open and start short-circuiting requests to fallback logic. |
|
|
| This property, if |
|
|
| This property, if |
|
|
| This property sets the minimum number of requests in a rolling window that will trip the circuit. |
|
|
| 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. |
|
|
| 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. |
|
|
| This property sets the core thread-pool size. This is the maximum number of |
|
|
| This property sets the maximum number of requests allowed to a If this maximum concurrent limit is hit then subsequent requests will be rejected. |
|
|
| This property indicates which isolation strategy
|
|
|
| This property indicates whether the |
|
|
| This property sets the time timeout in milliseconds after which the caller will observe a timeout and walk away from the command executionfor execution completion. |
|
|
| This property indicates whether the the execution of |
|
|
| This property determines whether a call to |
|
|
| This property sets the maximum number of requests a |
|
|
| Used to identify the hystrix group being used by the EIP to correlate statistics, circuit-breaker, properties, etc. |
|
|
| This property sets the keep-alive time, in minutes. |
|
|
| This property sets the maximum queue size of the |
|
|
| 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. |
|
|
| 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. |
|
|
| This property indicates whether execution latencies latency should be tracked and . The latency is calculated as percentiles. If they are disabled, all a percentile. If |
|
|
| This property sets the number of buckets the the |
|
|
| This property sets the duration of the rolling window in which execution times are kept to allow for percentile calculations, in milliseconds. |
|
|
| This property sets the number of buckets the rolling statistical window is divided into. |
|
|
| The following properties are related to capturing metrics from |
|
|
| This property sets the queue size rejection threshold — an artificial maximum queue size at which rejections will occur even if |
|
|
| This property indicates whether |
|
|
| Used to define which thread-pool this command should run in. By default this is using the same key as the group key. |
|
|
| This property sets the number of buckets the rolling statistical window is divided into. |
|
|
| This property sets the duration of the statistical rolling window, in milliseconds. This is how long metrics are kept for the thread pool. |
...
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 1000ms
so the HTTP endpoint has to be fairly quick to succeed.
Code Block | ||
---|---|---|
| ||
from("direct:start") .hystrix() .to("http://fooservice.com/slow") .onFallback() .transform().constant("Fallback message") .end() .to("mock:result"); |
...
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.
Code Block | ||
---|---|---|
| ||
from("direct:start") .hystrix() .hystrixConfiguration() .executionTimeoutInMilliseconds(5000).circuitBreakerSleepWindowInMilliseconds(10000) .end() .to("http://fooservice.com/slow") .onFallback() .transform().constant("Fallback message") .end() .to("mock:result"); |
...