Edit

Share via


HttpStandardHedgingResilienceOptions Class

Definition

Options for the pipeline of resilience strategies for usage in hedging HTTP scenarios.

public ref class HttpStandardHedgingResilienceOptions
public class HttpStandardHedgingResilienceOptions
type HttpStandardHedgingResilienceOptions = class
Public Class HttpStandardHedgingResilienceOptions
Inheritance
HttpStandardHedgingResilienceOptions

Remarks

These options represents configuration for 5 chained layers in this order (from the outermost to the innermost):

Total Request Timeout -> Hedging -> Bulkhead (per endpoint) -> Circuit Breaker (per endpoint) -> Attempt Timeout (per endpoint).

The configuration of each resilience strategy is initialized with the default options per type. The request goes through these resilience strategies:

  1. Total request timeout strategy applies an overall timeout to the execution, ensuring that the request including hedging attempts does not exceed the configured limit.
  2. The hedging strategy executes the requests against multiple endpoints in case the dependency is slow or returns a transient error.
  3. The rate limiter pipeline limits the maximum number of requests being send to the dependency.
  4. The circuit breaker blocks the execution if too many direct failures or timeouts are detected.
  5. The attempt timeout strategy limits each request attempt duration and throws if its exceeded.

The last three strategies are assigned to each individual endpoint. The selection of endpoint can be customized by SelectPipelineByAuthority(IStandardHedgingHandlerBuilder) or SelectPipelineBy(IStandardHedgingHandlerBuilder, Func<IServiceProvider,Func<HttpRequestMessage,String>>) extensions.

By default, the endpoint is selected by authority (scheme + host + port).

Constructors

HttpStandardHedgingResilienceOptions()

Properties

Endpoint

Gets or sets the hedging endpoint options.

Hedging

Gets or sets the hedging strategy options.

TotalRequestTimeout

Gets or sets the timeout strategy options for the total timeout applied on the request execution.

Methods

Equals(Object)

Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode()

Serves as the default hash function.

(Inherited from Object)
GetType()

Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone()

Creates a shallow copy of the current Object.

(Inherited from Object)
ToString()

Returns a string that represents the current object.

(Inherited from Object)

Applies to