public class CircuitBreaker extends ServiceInvoker
| Modifier and Type | Field and Description |
|---|---|
protected int |
cleanup
Cleanup period time, in SECONDS (0 = disable cleanup process)
|
protected ContextFactory |
contextFactory |
protected java.util.concurrent.ConcurrentHashMap<EndpointKey,ErrorCounter> |
errorCounters |
protected java.util.Set<java.lang.Class<? extends java.lang.Throwable>> |
ignoredTypes |
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 ServiceRegistry |
serviceRegistry |
protected long |
windowLength
Length of time-window in MILLISECONDS
|
broker, logger, name| Constructor and Description |
|---|
CircuitBreaker() |
| Modifier and Type | Method and Description |
|---|---|
void |
addIgnoredType(java.lang.Class<? extends java.lang.Throwable> type) |
io.datatree.Promise |
call(java.lang.String name,
io.datatree.Tree params,
CallOptions.Options opts,
Context parent) |
protected io.datatree.Promise |
call(java.lang.String name,
io.datatree.Tree params,
CallOptions.Options opts,
Context parent,
java.lang.String targetID,
int remaining) |
int |
getCleanup() |
java.util.Set<java.lang.Class<? extends java.lang.Throwable>> |
getIgnoredTypes() |
int |
getMaxErrors() |
int |
getMaxSameNodes() |
int |
getMaxTries() |
long |
getWindowLength() |
protected void |
increment(ErrorCounter errorCounter,
EndpointKey endpointKey,
java.lang.Throwable cause,
long now) |
void |
removeIgnoredType(java.lang.Class<? extends java.lang.Throwable> type) |
protected io.datatree.Promise |
retry(java.lang.Throwable cause,
java.lang.String name,
io.datatree.Tree params,
CallOptions.Options opts,
Context parent,
java.lang.String targetID,
int remaining) |
void |
setCleanup(int cleanup) |
void |
setIgnoredTypes(java.util.Set<java.lang.Class<? extends java.lang.Throwable>> ignoredTypes) |
void |
setMaxErrors(int maxErrors) |
void |
setMaxSameNodes(int maxSameNodes) |
void |
setMaxTries(int maxTries) |
void |
setWindowLength(long windowLength) |
void |
started(ServiceBroker broker) |
void |
stopped() |
getBroker, getLogger, getNameprotected int maxTries
protected int maxSameNodes
protected int cleanup
protected long windowLength
protected int maxErrors
protected long lockTimeout
protected ServiceRegistry serviceRegistry
protected ContextFactory contextFactory
protected java.util.Set<java.lang.Class<? extends java.lang.Throwable>> ignoredTypes
protected java.util.concurrent.ConcurrentHashMap<EndpointKey,ErrorCounter> errorCounters
public void started(ServiceBroker broker) throws java.lang.Exception
started in class MoleculerComponentjava.lang.Exceptionpublic void stopped()
stopped in class MoleculerComponentpublic io.datatree.Promise call(java.lang.String name,
io.datatree.Tree params,
CallOptions.Options opts,
Context parent)
call in class ServiceInvokerprotected io.datatree.Promise call(java.lang.String name,
io.datatree.Tree params,
CallOptions.Options opts,
Context parent,
java.lang.String targetID,
int remaining)
protected io.datatree.Promise retry(java.lang.Throwable cause,
java.lang.String name,
io.datatree.Tree params,
CallOptions.Options opts,
Context parent,
java.lang.String targetID,
int remaining)
protected void increment(ErrorCounter errorCounter, EndpointKey endpointKey, java.lang.Throwable cause, long now)
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)