Interface ConsulFailoverStrategy

    • 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.
      boolean isRequestViable​(okhttp3.Request current)
      Determines if there is a viable candidate for the next request.
      void markRequestFailed​(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

        @Nullable
        java.util.Optional<okhttp3.Request> computeNextStage​(@Nonnull
                                                             okhttp3.Request previousRequest,
                                                             @Nullable
                                                             okhttp3.Response previousResponse)
        Computes 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.
        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

        boolean isRequestViable​(@Nonnull
                                okhttp3.Request current)
        Determines 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.
        Parameters:
        current - The current inflight request.
        Returns:
        A boolean representing if there is another possible request candidate available.
      • markRequestFailed

        void markRequestFailed​(@Nonnull
                               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. This avoids infinite loops where the strategy can never be made aware that the request has failed.
        Parameters:
        current - The current request object representing a request that failed