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
serviceInstanceProvider
IServiceInstanceProviderProvider of service instance information
distributedCache
IDistributedCacheFor caching service instance data
cacheEntryOptions
DistributedCacheEntryOptionsConfiguration for cache entries of service instance data
logger
ILoggerFor 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
request
UriA 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
originalUri
UriThe original request URI
resolvedUri
UriThe URI resolved by the load balancer
responseTime
TimeSpanThe amount of time taken for a remote call to complete
exception
ExceptionAny exception called during calls to a resolved service instance
Returns
- Task
A task