Circuit Breaker
Janus has a circuit breaker plugin that can be configured for each endpoint. You can check our example on how to use the plugin.
Configuration
The plain cb config:
{
"name" : "cb",
"enabled" : true,
"config" : {
"name": "my-circuit-breaker",
"timeout" : 1000,
"max_concurrent_requests": 100,
"error_percent_threshold": 50,
"request_volume_threshold": 20,
"sleep_window": 5000,
"predicate": "statusCode == 0 || statusCode >= 500"
}
}
Configuration | Description | ||||
---|---|---|---|---|---|
name | Circuit Breaker name to group stats | ||||
timeout | Timeout that the CB will wait till the request responds | ||||
max_concurrent_requests | How many commands of the same type can run at the same time | ||||
error_percent_threshold | Causes circuits to open once the rolling measure of errors exceeds this percent of requests | ||||
request_volume_threshold | Is the minimum number of requests needed before a circuit can be tripped due to health | ||||
sleep_window | Is how long, in milliseconds, to wait after a circuit opens before testing for recovery | ||||
predicate | The rule that we will check to define if the request was successful or not. You have access to statusCode and all the request object. Defaults to `statusCode == 0 \ |
\ | statusCode >= 500` |