Class RandomLoadBalancer
- Namespace
- Steeltoe.Common.LoadBalancer
- Assembly
- Steeltoe.Common.dll
public class RandomLoadBalancer : ILoadBalancer
- Inheritance
-
RandomLoadBalancer
- Implements
- Inherited Members
Constructors
RandomLoadBalancer(IServiceInstanceProvider, IDistributedCache, DistributedCacheEntryOptions, ILogger)
Initializes a new instance of the RandomLoadBalancer class. Returns random service instances, with option caching of service lookups
public RandomLoadBalancer(IServiceInstanceProvider serviceInstanceProvider, IDistributedCache distributedCache = null, DistributedCacheEntryOptions cacheEntryOptions = null, ILogger logger = null)
Parameters
serviceInstanceProviderIServiceInstanceProviderProvider of service instance information
distributedCacheIDistributedCacheFor caching service instance data
cacheEntryOptionsDistributedCacheEntryOptionsConfiguration for cache entries of service instance data
loggerILoggerFor logging
Methods
ResolveServiceInstanceAsync(Uri)
Evaluates a URI for a host name that can be resolved into a service instance
public virtual Task<Uri> ResolveServiceInstanceAsync(Uri request)
Parameters
requestUriA URI containing a service name that can be resolved into one or more service instances
Returns
UpdateStatsAsync(Uri, Uri, TimeSpan, Exception)
A mechanism for tracking statistics for service instances
public virtual Task UpdateStatsAsync(Uri originalUri, Uri resolvedUri, TimeSpan responseTime, Exception exception)
Parameters
originalUriUriThe original request URI
resolvedUriUriThe URI resolved by the load balancer
responseTimeTimeSpanThe amount of time taken for a remote call to complete
exceptionExceptionAny exception called during calls to a resolved service instance
Returns
- Task
A task