Class BlacklistingConsulFailoverStrategy
- java.lang.Object
-
- com.orbitz.consul.util.failover.strategy.BlacklistingConsulFailoverStrategy
-
- All Implemented Interfaces:
ConsulFailoverStrategy
public class BlacklistingConsulFailoverStrategy extends java.lang.Object implements ConsulFailoverStrategy
- Author:
- Troy Heanssgen
-
-
Constructor Summary
Constructors Constructor Description BlacklistingConsulFailoverStrategy(java.util.Collection<com.google.common.net.HostAndPort> targets, long timeout)Constructs a blacklisting strategy with a collection of hosts and ports
-
Method Summary
Modifier and Type Method Description java.util.Optional<okhttp3.Request>computeNextStage(okhttp3.Request previousRequest, okhttp3.Response previousResponse)Computes the next failover stage for the consul failover strategy.booleanisRequestViable(okhttp3.Request current)Determines if there is a viable candidate for the next request.voidmarkRequestFailed(okhttp3.Request current)Marks the specified request as a failed URL (in case of exceptions and other events that could cause us to never get a response.
-
-
-
Method Detail
-
computeNextStage
public java.util.Optional<okhttp3.Request> computeNextStage(okhttp3.Request previousRequest, okhttp3.Response previousResponse)Description copied from interface:ConsulFailoverStrategyComputes the next failover stage for the consul failover strategy. This allows the end user to customize the way and methods by which additional failover targets may be selected.- Specified by:
computeNextStagein interfaceConsulFailoverStrategy- Parameters:
previousRequest- The last request to go out the door.previousResponse- The response that returned when previousRequest was completed.- Returns:
- An optional failover request. This may return an empty optional, signaling that the request should be aborted
-
isRequestViable
public boolean isRequestViable(okhttp3.Request current)
Description copied from interface:ConsulFailoverStrategyDetermines if there is a viable candidate for the next request. This lets us short circuit the first attempted request (such as when we know with certainty that a host should not be available) without interfering with the consul client too much.- Specified by:
isRequestViablein interfaceConsulFailoverStrategy- Parameters:
current- The current inflight request.- Returns:
- A boolean representing if there is another possible request candidate available.
-
markRequestFailed
public void markRequestFailed(okhttp3.Request current)
Description copied from interface:ConsulFailoverStrategyMarks the specified request as a failed URL (in case of exceptions and other events that could cause us to never get a response. This avoids infinite loops where the strategy can never be made aware that the request has failed.- Specified by:
markRequestFailedin interfaceConsulFailoverStrategy- Parameters:
current- The current request object representing a request that failed
-
-