public class CircuitBreaker extends DefaultServiceInvoker implements java.lang.Runnable, MetricConstants
| Modifier and Type | Field and Description |
|---|---|
protected int |
cleanup
Cleanup period time, in SECONDS (0 = disable cleanup process)
|
protected java.util.HashMap<EndpointKey,ErrorCounter> |
errorCounters |
protected java.util.Set<java.lang.Class<? extends java.lang.Throwable>> |
ignoredTypes |
protected long |
lastCleanup |
protected long |
lockTimeout
Half-open timeout in MILLISECONDS
|
protected int |
maxErrors
Maximum number of errors in time-window
|
protected int |
maxSameNodes
Exit from "maxTries" loop, when strategy returns number of "maxSameNodes"
corresponding node IDs
|
protected int |
maxTries
Number of max tries
|
protected Metrics |
metrics |
protected java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock |
readLock |
protected ServiceRegistry |
serviceRegistry |
protected java.util.concurrent.ScheduledFuture<?> |
timer
Cancelable timer
|
protected long |
windowLength
Length of time-window in MILLISECONDS
|
protected java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock |
writeLock |
eventbus, maxCallLevel, retryLogic, uidGenerator, writeErrorsToLogbroker, logger, nameMOLECULER_CACHER_CLEAN_TIME, MOLECULER_CACHER_CLEAN_TIME_DESC, MOLECULER_CACHER_CLEAN_TOTAL, MOLECULER_CACHER_CLEAN_TOTAL_DESC, MOLECULER_CACHER_DEL_TIME, MOLECULER_CACHER_DEL_TIME_DESC, MOLECULER_CACHER_DEL_TOTAL, MOLECULER_CACHER_DEL_TOTAL_DESC, MOLECULER_CACHER_EXPIRED_TOTAL, MOLECULER_CACHER_EXPIRED_TOTAL_DESC, MOLECULER_CACHER_FOUND_TOTAL, MOLECULER_CACHER_FOUND_TOTAL_DESC, MOLECULER_CACHER_GET_TIME, MOLECULER_CACHER_GET_TIME_DESC, MOLECULER_CACHER_GET_TOTAL, MOLECULER_CACHER_GET_TOTAL_DESC, MOLECULER_CACHER_SET_TIME, MOLECULER_CACHER_SET_TIME_DESC, MOLECULER_CACHER_SET_TOTAL, MOLECULER_CACHER_SET_TOTAL_DESC, MOLECULER_CIRCUIT_BREAKER_HALF_OPENED_ACTIVE, MOLECULER_CIRCUIT_BREAKER_HALF_OPENED_ACTIVE_DESC, MOLECULER_CIRCUIT_BREAKER_OPENED_ACTIVE, MOLECULER_CIRCUIT_BREAKER_OPENED_ACTIVE_DESC, MOLECULER_CIRCUIT_BREAKER_OPENED_TOTAL, MOLECULER_CIRCUIT_BREAKER_OPENED_TOTAL_DESC, MOLECULER_EVENT_BROADCAST_TOTAL, MOLECULER_EVENT_BROADCAST_TOTAL_DESC, MOLECULER_EVENT_BROADCASTLOCAL_TOTAL, MOLECULER_EVENT_BROADCASTLOCAL_TOTAL_DESC, MOLECULER_EVENT_EMIT_TOTAL, MOLECULER_EVENT_EMIT_TOTAL_DESC, MOLECULER_EVENT_RECEIVED_ACTIVE, MOLECULER_EVENT_RECEIVED_ACTIVE_DESC, MOLECULER_EVENT_RECEIVED_ERROR_TOTAL, MOLECULER_EVENT_RECEIVED_ERROR_TOTAL_DESC, MOLECULER_EVENT_RECEIVED_TIME, MOLECULER_EVENT_RECEIVED_TIME_DESC, MOLECULER_EVENT_RECEIVED_TOTAL, MOLECULER_EVENT_RECEIVED_TOTAL_DESC, MOLECULER_EXECUTOR, MOLECULER_REQUEST_ACTIVE, MOLECULER_REQUEST_ACTIVE_DESC, MOLECULER_REQUEST_ERROR_TOTAL, MOLECULER_REQUEST_ERROR_TOTAL_DESC, MOLECULER_REQUEST_LEVELS, MOLECULER_REQUEST_LEVELS_DESC, MOLECULER_REQUEST_RETRY_ATTEMPTS_TOTAL, MOLECULER_REQUEST_RETRY_ATTEMPTS_TOTAL_DESC, MOLECULER_REQUEST_TIME, MOLECULER_REQUEST_TIME_DESC, MOLECULER_REQUEST_TIMEOUT_TOTAL, MOLECULER_REQUEST_TIMEOUT_TOTAL_DESC, MOLECULER_REQUEST_TOTAL, MOLECULER_REQUEST_TOTAL_DESC, MOLECULER_SCHEDULER, MOLECULER_TRANSIT_CONNECTED, MOLECULER_TRANSIT_CONNECTED_DESC, MOLECULER_TRANSIT_ORPHAN_RESPONSE_TOTAL, MOLECULER_TRANSIT_ORPHAN_RESPONSE_TOTAL_DESC, MOLECULER_TRANSIT_REQUESTS_ACTIVE, MOLECULER_TRANSIT_REQUESTS_ACTIVE_DESC, MOLECULER_TRANSIT_STREAMS_RECEIVE_ACTIVE, MOLECULER_TRANSIT_STREAMS_RECEIVE_ACTIVE_DESC, MOLECULER_TRANSPORTER_PACKETS_RECEIVED_BYTES, MOLECULER_TRANSPORTER_PACKETS_RECEIVED_BYTES_DESC, MOLECULER_TRANSPORTER_PACKETS_RECEIVED_TOTAL, MOLECULER_TRANSPORTER_PACKETS_RECEIVED_TOTAL_DESC, MOLECULER_TRANSPORTER_PACKETS_SENT_BYTES, MOLECULER_TRANSPORTER_PACKETS_SENT_BYTES_DESC, MOLECULER_TRANSPORTER_PACKETS_SENT_TOTAL, MOLECULER_TRANSPORTER_PACKETS_SENT_TOTAL_DESC| Constructor and Description |
|---|
CircuitBreaker() |
| Modifier and Type | Method and Description |
|---|---|
void |
addIgnoredType(java.lang.Class<? extends java.lang.Throwable> type) |
protected io.datatree.Promise |
call(Context ctx,
java.lang.String targetID,
int remaining) |
int |
getCleanup() |
protected ErrorCounter |
getErrorCounter(EndpointKey endpointKey) |
java.util.Set<java.lang.Class<? extends java.lang.Throwable>> |
getIgnoredTypes() |
long |
getLockTimeout() |
int |
getMaxErrors() |
int |
getMaxSameNodes() |
int |
getMaxTries() |
long |
getWindowLength() |
protected void |
onError(ErrorCounter errorCounter,
EndpointKey endpointKey,
java.lang.Throwable cause) |
void |
removeIgnoredType(java.lang.Class<? extends java.lang.Throwable> type) |
void |
run() |
void |
setCleanup(int cleanup) |
void |
setIgnoredTypes(java.util.Set<java.lang.Class<? extends java.lang.Throwable>> ignoredTypes) |
void |
setLockTimeout(long lockTimeout) |
void |
setMaxErrors(int maxErrors) |
void |
setMaxSameNodes(int maxSameNodes) |
void |
setMaxTries(int maxTries) |
void |
setWindowLength(long windowLength) |
void |
started(ServiceBroker broker) |
void |
stopped() |
call, getMaxCallLevel, getRetryLogic, isWriteErrorsToLog, retry, setMaxCallLevel, setRetryLogic, setWriteErrorsToLoggetBroker, getLogger, getNameprotected int maxTries
protected int maxSameNodes
protected int cleanup
protected long windowLength
protected int maxErrors
protected long lockTimeout
protected ServiceRegistry serviceRegistry
protected Metrics metrics
protected java.util.Set<java.lang.Class<? extends java.lang.Throwable>> ignoredTypes
protected java.util.HashMap<EndpointKey,ErrorCounter> errorCounters
protected final java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock readLock
protected final java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock writeLock
protected long lastCleanup
protected volatile java.util.concurrent.ScheduledFuture<?> timer
public void started(ServiceBroker broker) throws java.lang.Exception
started in interface MoleculerLifecyclestarted in class DefaultServiceInvokerjava.lang.Exceptionpublic void stopped()
stopped in interface MoleculerLifecyclestopped in class MoleculerComponentpublic void run()
run in interface java.lang.Runnableprotected io.datatree.Promise call(Context ctx, java.lang.String targetID, int remaining)
call in class DefaultServiceInvokerprotected ErrorCounter getErrorCounter(EndpointKey endpointKey)
protected void onError(ErrorCounter errorCounter, EndpointKey endpointKey, java.lang.Throwable cause)
public void addIgnoredType(java.lang.Class<? extends java.lang.Throwable> type)
public void removeIgnoredType(java.lang.Class<? extends java.lang.Throwable> type)
public java.util.Set<java.lang.Class<? extends java.lang.Throwable>> getIgnoredTypes()
public void setIgnoredTypes(java.util.Set<java.lang.Class<? extends java.lang.Throwable>> ignoredTypes)
public int getMaxTries()
public void setMaxTries(int maxTries)
public int getMaxSameNodes()
public void setMaxSameNodes(int maxSameNodes)
public int getCleanup()
public void setCleanup(int cleanup)
public long getWindowLength()
public void setWindowLength(long windowLength)
public int getMaxErrors()
public void setMaxErrors(int maxErrors)
public long getLockTimeout()
public void setLockTimeout(long lockTimeout)