Package io.vertx.circuitbreaker
Class CircuitBreakerOptions
- java.lang.Object
-
- io.vertx.circuitbreaker.CircuitBreakerOptions
-
public class CircuitBreakerOptions extends Object
Circuit breaker configuration options. All time values are in milliseconds.- Author:
- Clement Escoffier
-
-
Field Summary
Fields Modifier and Type Field Description static boolean
DEFAULT_FALLBACK_ON_FAILURE
Default value of the fallback on failure property.static int
DEFAULT_MAX_FAILURES
Default number of failures after which a closed circuit breaker moves to open.static int
DEFAULT_METRICS_ROLLING_BUCKETS
Default number of buckets used for the metrics rolling window.static long
DEFAULT_METRICS_ROLLING_WINDOW
Default length of rolling window for metrics in milliseconds.static String
DEFAULT_NOTIFICATION_ADDRESS
A default address on which the circuit breakers can send their updates.static boolean
DEFAULT_NOTIFICATION_LOCAL_ONLY
Default value of whether circuit breaker state events should be delivered only to local consumers.static long
DEFAULT_NOTIFICATION_PERIOD
Default notification period in milliseconds.static long
DEFAULT_RESET_TIMEOUT
Default time after which an open circuit breaker moves to half-open (in an attempt to re-close) in milliseconds.static long
DEFAULT_TIMEOUT
Default timeout in milliseconds.
-
Constructor Summary
Constructors Constructor Description CircuitBreakerOptions()
Creates a new instance ofCircuitBreakerOptions
using the default values.CircuitBreakerOptions(CircuitBreakerOptions other)
Creates a new instance ofCircuitBreakerOptions
by copying the other instance.CircuitBreakerOptions(JsonObject json)
Creates a new instance ofCircuitBreakerOptions
from the given JSON object.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description long
getFailuresRollingWindow()
int
getMaxFailures()
int
getMaxRetries()
int
getMetricsRollingBuckets()
long
getMetricsRollingWindow()
String
getNotificationAddress()
long
getNotificationPeriod()
long
getResetTimeout()
long
getTimeout()
boolean
isFallbackOnFailure()
boolean
isNotificationLocalOnly()
CircuitBreakerOptions
setFailuresRollingWindow(long failureRollingWindow)
Sets the rolling window length used for failures.CircuitBreakerOptions
setFallbackOnFailure(boolean fallbackOnFailure)
Sets whether the fallback is executed on failure, even when the circuit breaker is closed.CircuitBreakerOptions
setMaxFailures(int maxFailures)
Sets the maximum number of failures before opening the circuit breaker.CircuitBreakerOptions
setMaxRetries(int maxRetries)
Sets the number of times the circuit breaker retries an operation before failing.CircuitBreakerOptions
setMetricsRollingBuckets(int metricsRollingBuckets)
Sets the number of buckets the metrics rolling window is divided into.CircuitBreakerOptions
setMetricsRollingWindow(long metricsRollingWindow)
Sets the rolling window length used for metrics.CircuitBreakerOptions
setNotificationAddress(String notificationAddress)
Sets the event bus address on which the circuit breaker publishes its state changes.CircuitBreakerOptions
setNotificationLocalOnly(boolean notificationLocalOnly)
Sets whether circuit breaker state events should be delivered only to local consumers.CircuitBreakerOptions
setNotificationPeriod(long notificationPeriod)
Sets the period in milliseconds in which the circuit breaker sends notifications on the event bus with its current state.CircuitBreakerOptions
setResetTimeout(long resetTimeout)
Sets the time in milliseconds before an open circuit breaker moves to half-open (in an attempt to re-close).CircuitBreakerOptions
setTimeout(long timeoutInMs)
Sets the timeout in milliseconds.JsonObject
toJson()
-
-
-
Field Detail
-
DEFAULT_TIMEOUT
public static final long DEFAULT_TIMEOUT
Default timeout in milliseconds.- See Also:
- Constant Field Values
-
DEFAULT_MAX_FAILURES
public static final int DEFAULT_MAX_FAILURES
Default number of failures after which a closed circuit breaker moves to open.- See Also:
- Constant Field Values
-
DEFAULT_FALLBACK_ON_FAILURE
public static final boolean DEFAULT_FALLBACK_ON_FAILURE
Default value of the fallback on failure property.- See Also:
- Constant Field Values
-
DEFAULT_RESET_TIMEOUT
public static final long DEFAULT_RESET_TIMEOUT
Default time after which an open circuit breaker moves to half-open (in an attempt to re-close) in milliseconds.- See Also:
- Constant Field Values
-
DEFAULT_NOTIFICATION_LOCAL_ONLY
public static final boolean DEFAULT_NOTIFICATION_LOCAL_ONLY
Default value of whether circuit breaker state events should be delivered only to local consumers.- See Also:
- Constant Field Values
-
DEFAULT_NOTIFICATION_ADDRESS
public static final String DEFAULT_NOTIFICATION_ADDRESS
A default address on which the circuit breakers can send their updates.- See Also:
- Constant Field Values
-
DEFAULT_NOTIFICATION_PERIOD
public static final long DEFAULT_NOTIFICATION_PERIOD
Default notification period in milliseconds.- See Also:
- Constant Field Values
-
DEFAULT_METRICS_ROLLING_WINDOW
public static final long DEFAULT_METRICS_ROLLING_WINDOW
Default length of rolling window for metrics in milliseconds.- See Also:
- Constant Field Values
-
DEFAULT_METRICS_ROLLING_BUCKETS
public static final int DEFAULT_METRICS_ROLLING_BUCKETS
Default number of buckets used for the metrics rolling window.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
CircuitBreakerOptions
public CircuitBreakerOptions()
Creates a new instance ofCircuitBreakerOptions
using the default values.
-
CircuitBreakerOptions
public CircuitBreakerOptions(CircuitBreakerOptions other)
Creates a new instance ofCircuitBreakerOptions
by copying the other instance.- Parameters:
other
- the instance fo copy
-
CircuitBreakerOptions
public CircuitBreakerOptions(JsonObject json)
Creates a new instance ofCircuitBreakerOptions
from the given JSON object.- Parameters:
json
- the JSON object
-
-
Method Detail
-
toJson
public JsonObject toJson()
- Returns:
- a JSON object representing this configuration
-
getMaxFailures
public int getMaxFailures()
- Returns:
- the maximum number of failures before opening the circuit breaker
-
setMaxFailures
public CircuitBreakerOptions setMaxFailures(int maxFailures)
Sets the maximum number of failures before opening the circuit breaker.- Parameters:
maxFailures
- the number of failures.- Returns:
- this
CircuitBreakerOptions
-
getTimeout
public long getTimeout()
- Returns:
- the configured timeout in milliseconds
-
setTimeout
public CircuitBreakerOptions setTimeout(long timeoutInMs)
Sets the timeout in milliseconds. If an action does not complete before this timeout, the action is considered as a failure.- Parameters:
timeoutInMs
- the timeout, -1 to disable the timeout- Returns:
- this
CircuitBreakerOptions
-
isFallbackOnFailure
public boolean isFallbackOnFailure()
- Returns:
- whether the fallback is executed on failures, even when the circuit breaker is closed
-
setFallbackOnFailure
public CircuitBreakerOptions setFallbackOnFailure(boolean fallbackOnFailure)
Sets whether the fallback is executed on failure, even when the circuit breaker is closed.- Parameters:
fallbackOnFailure
-true
to enable it.- Returns:
- this
CircuitBreakerOptions
-
getResetTimeout
public long getResetTimeout()
- Returns:
- the time in milliseconds before an open circuit breaker moves to half-open (in an attempt to re-close)
-
setResetTimeout
public CircuitBreakerOptions setResetTimeout(long resetTimeout)
Sets the time in milliseconds before an open circuit breaker moves to half-open (in an attempt to re-close). If the circuit breaker is closed when the timeout is reached, nothing happens.-1
disables this feature.- Parameters:
resetTimeout
- the time in ms- Returns:
- this
CircuitBreakerOptions
-
isNotificationLocalOnly
public boolean isNotificationLocalOnly()
- Returns:
true
if circuit breaker state events should be delivered only to local consumers,false
otherwise
-
setNotificationLocalOnly
public CircuitBreakerOptions setNotificationLocalOnly(boolean notificationLocalOnly)
Sets whether circuit breaker state events should be delivered only to local consumers.- Parameters:
notificationLocalOnly
-true
if circuit breaker state events should be delivered only to local consumers,false
otherwise- Returns:
- this
CircuitBreakerOptions
-
getNotificationAddress
public String getNotificationAddress()
- Returns:
- the eventbus address on which the circuit breaker events are published, or
null
if this feature has been disabled
-
setNotificationAddress
public CircuitBreakerOptions setNotificationAddress(String notificationAddress)
Sets the event bus address on which the circuit breaker publishes its state changes.- Parameters:
notificationAddress
- the address,null
to disable this feature- Returns:
- this
CircuitBreakerOptions
-
getNotificationPeriod
public long getNotificationPeriod()
- Returns:
- the period in milliseconds in which the circuit breaker sends notifications about its state
-
setNotificationPeriod
public CircuitBreakerOptions setNotificationPeriod(long notificationPeriod)
Sets the period in milliseconds in which the circuit breaker sends notifications on the event bus with its current state.- Parameters:
notificationPeriod
- the period, 0 to disable this feature.- Returns:
- this
CircuitBreakerOptions
-
getMetricsRollingWindow
public long getMetricsRollingWindow()
- Returns:
- the configured length of rolling window for metrics
-
setMetricsRollingWindow
public CircuitBreakerOptions setMetricsRollingWindow(long metricsRollingWindow)
Sets the rolling window length used for metrics.- Parameters:
metricsRollingWindow
- the period in milliseconds- Returns:
- this
CircuitBreakerOptions
-
getFailuresRollingWindow
public long getFailuresRollingWindow()
- Returns:
- the configured length of rolling window for failures
-
setFailuresRollingWindow
public CircuitBreakerOptions setFailuresRollingWindow(long failureRollingWindow)
Sets the rolling window length used for failures.- Parameters:
failureRollingWindow
- the period in milliseconds- Returns:
- this
CircuitBreakerOptions
-
getMetricsRollingBuckets
public int getMetricsRollingBuckets()
- Returns:
- the configured number of buckets the metrics rolling window is divided into
-
setMetricsRollingBuckets
public CircuitBreakerOptions setMetricsRollingBuckets(int metricsRollingBuckets)
Sets the number of buckets the metrics rolling window is divided into.The following must be true:
metricsRollingWindow % metricsRollingBuckets == 0
, otherwise an exception will be thrown. For example, 10000/10 is okay, so is 10000/20, but 10000/7 is not.- Parameters:
metricsRollingBuckets
- the number of buckets- Returns:
- this
CircuitBreakerOptions
-
getMaxRetries
public int getMaxRetries()
- Returns:
- the number of times the circuit breaker retries an operation before failing
-
setMaxRetries
public CircuitBreakerOptions setMaxRetries(int maxRetries)
Sets the number of times the circuit breaker retries an operation before failing.- Parameters:
maxRetries
- the number of retries, 0 to disable retrying- Returns:
- this
CircuitBreakerOptions
-
-