Class/Object

io.buoyant.router.h2

ClassifiedRetryFilter

Related Docs: object ClassifiedRetryFilter | package h2

Permalink

class ClassifiedRetryFilter extends SimpleFilter[Request, Response]

The ClassifiedRetryFilter uses BufferedStreams to implement retries. The request stream is buffered and a child stream is sent to the service. This is done so that if it becomes necessary to retry, a new child of the request stream can be created.

The response stream is also buffered and held until either the response stream completes or the response buffer becomes full. If the response stream completes, we use the provided ResponseClassifier to determine if the request should be retried. If so, we discard the response stream, fork a new child of the request stream, and send the new request stream to the service. If not, we return the response stream to the caller.

Linear Supertypes
SimpleFilter[Request, Response], Filter[Request, Response, Request, Response], (Request, Service[Request, Response]) ⇒ Future[Response], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ClassifiedRetryFilter
  2. SimpleFilter
  3. Filter
  4. Function2
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new ClassifiedRetryFilter(stats: StatsReceiver, classifier: H2Classifier, backoffs: Stream[Duration], budget: RetryBudget, classificationTimeout: Duration = 100.millis, requestBufferSize: Long = ..., responseBufferSize: Long = ...)(implicit timer: Timer)

    Permalink

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. def agnosticAndThen(next: TypeAgnostic): Filter[Request, Response, Request, Response]

    Permalink
    Definition Classes
    Filter
  5. def andThen(factory: ServiceFactory[Request, Response]): ServiceFactory[Request, Response]

    Permalink
    Definition Classes
    Filter
  6. def andThen(service: Service[Request, Response]): Service[Request, Response]

    Permalink
    Definition Classes
    Filter
  7. def andThen[Req2, Rep2](next: Filter[Request, Response, Req2, Rep2]): Filter[Request, Response, Req2, Rep2]

    Permalink
    Definition Classes
    Filter
  8. def andThenIf[Req2 >: Request, Rep2 <: Response](condAndFilter: (Boolean, Filter[Request, Response, Req2, Rep2])): Filter[Request, Response, Req2, Rep2]

    Permalink
    Definition Classes
    Filter
  9. def apply(request: Request, service: Service[Request, Response]): Future[Response]

    Permalink
    Definition Classes
    ClassifiedRetryFilter → Filter → Function2
  10. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  11. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  12. def curried: (Request) ⇒ (Service[Request, Response]) ⇒ Future[Response]

    Permalink
    Definition Classes
    Function2
    Annotations
    @unspecialized()
  13. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  14. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  15. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  16. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  17. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  18. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  19. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  20. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  21. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  22. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  23. def toString(): String

    Permalink
    Definition Classes
    Function2 → AnyRef → Any
  24. def tupled: ((Request, Service[Request, Response])) ⇒ Future[Response]

    Permalink
    Definition Classes
    Function2
    Annotations
    @unspecialized()
  25. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  26. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  27. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from SimpleFilter[Request, Response]

Inherited from Filter[Request, Response, Request, Response]

Inherited from (Request, Service[Request, Response]) ⇒ Future[Response]

Inherited from AnyRef

Inherited from Any

Ungrouped