mirror of
https://github.com/nsnail/Ocelot.git
synced 2025-06-19 00:38:16 +08:00
plugged new lb creator into tests
This commit is contained in:
@ -9,6 +9,7 @@ using Ocelot.Configuration.Builder;
|
||||
using Ocelot.Configuration.File;
|
||||
using Ocelot.Configuration.Parser;
|
||||
using Ocelot.Configuration.Validator;
|
||||
using Ocelot.LoadBalancer;
|
||||
using Ocelot.LoadBalancer.LoadBalancers;
|
||||
using Ocelot.Logging;
|
||||
using Ocelot.Requester.QoS;
|
||||
@ -25,8 +26,7 @@ namespace Ocelot.Configuration.Creator
|
||||
private readonly IOptions<FileConfiguration> _options;
|
||||
private readonly IConfigurationValidator _configurationValidator;
|
||||
private readonly IOcelotLogger _logger;
|
||||
private readonly ILoadBalancerFactory _loadBalanceFactory;
|
||||
private readonly ILoadBalancerHouse _loadBalancerHouse;
|
||||
private readonly ILoadBalancerCreator _lbCreator;
|
||||
private readonly IQoSProviderFactory _qoSProviderFactory;
|
||||
private readonly IQosProviderHouse _qosProviderHouse;
|
||||
private readonly IClaimsToThingCreator _claimsToThingCreator;
|
||||
@ -44,8 +44,7 @@ namespace Ocelot.Configuration.Creator
|
||||
IOptions<FileConfiguration> options,
|
||||
IConfigurationValidator configurationValidator,
|
||||
IOcelotLoggerFactory loggerFactory,
|
||||
ILoadBalancerFactory loadBalancerFactory,
|
||||
ILoadBalancerHouse loadBalancerHouse,
|
||||
ILoadBalancerCreator lbCreator,
|
||||
IQoSProviderFactory qoSProviderFactory,
|
||||
IQosProviderHouse qosProviderHouse,
|
||||
IClaimsToThingCreator claimsToThingCreator,
|
||||
@ -60,13 +59,12 @@ namespace Ocelot.Configuration.Creator
|
||||
IHttpHandlerOptionsCreator httpHandlerOptionsCreator
|
||||
)
|
||||
{
|
||||
_lbCreator = lbCreator;
|
||||
_regionCreator = regionCreator;
|
||||
_rateLimitOptionsCreator = rateLimitOptionsCreator;
|
||||
_requestIdKeyCreator = requestIdKeyCreator;
|
||||
_upstreamTemplatePatternCreator = upstreamTemplatePatternCreator;
|
||||
_authOptionsCreator = authOptionsCreator;
|
||||
_loadBalanceFactory = loadBalancerFactory;
|
||||
_loadBalancerHouse = loadBalancerHouse;
|
||||
_qoSProviderFactory = qoSProviderFactory;
|
||||
_qosProviderHouse = qosProviderHouse;
|
||||
_options = options;
|
||||
@ -176,7 +174,7 @@ namespace Ocelot.Configuration.Creator
|
||||
.WithHttpHandlerOptions(httpHandlerOptions)
|
||||
.Build();
|
||||
|
||||
await SetupLoadBalancer(reRoute);
|
||||
await _lbCreator.SetupLoadBalancer(reRoute);
|
||||
SetupQosProvider(reRoute);
|
||||
return reRoute;
|
||||
}
|
||||
@ -188,12 +186,6 @@ namespace Ocelot.Configuration.Creator
|
||||
return loadBalancerKey;
|
||||
}
|
||||
|
||||
private async Task SetupLoadBalancer(ReRoute reRoute)
|
||||
{
|
||||
var loadBalancer = await _loadBalanceFactory.Get(reRoute);
|
||||
_loadBalancerHouse.Add(reRoute.ReRouteKey, loadBalancer);
|
||||
}
|
||||
|
||||
private void SetupQosProvider(ReRoute reRoute)
|
||||
{
|
||||
var loadBalancer = _qoSProviderFactory.Get(reRoute);
|
||||
|
@ -46,6 +46,7 @@ using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Ocelot.Configuration;
|
||||
using FileConfigurationProvider = Ocelot.Configuration.Provider.FileConfigurationProvider;
|
||||
using Ocelot.LoadBalancer;
|
||||
|
||||
namespace Ocelot.DependencyInjection
|
||||
{
|
||||
@ -93,6 +94,7 @@ namespace Ocelot.DependencyInjection
|
||||
.AddJsonFormatters();
|
||||
|
||||
services.AddLogging();
|
||||
services.TryAddSingleton<ILoadBalancerCreator, LoadBalancerCreator>();
|
||||
services.TryAddSingleton<IRegionCreator, RegionCreator>();
|
||||
services.TryAddSingleton<IFileConfigurationRepository, FileConfigurationRepository>();
|
||||
services.TryAddSingleton<IFileConfigurationSetter, FileConfigurationSetter>();
|
||||
|
10
src/Ocelot/LoadBalancer/ILoadBalancerCreator.cs
Normal file
10
src/Ocelot/LoadBalancer/ILoadBalancerCreator.cs
Normal file
@ -0,0 +1,10 @@
|
||||
using System.Threading.Tasks;
|
||||
using Ocelot.Configuration;
|
||||
|
||||
namespace Ocelot.LoadBalancer
|
||||
{
|
||||
public interface ILoadBalancerCreator
|
||||
{
|
||||
Task SetupLoadBalancer(ReRoute reRoute);
|
||||
}
|
||||
}
|
@ -4,7 +4,7 @@ using Ocelot.LoadBalancer.LoadBalancers;
|
||||
|
||||
namespace Ocelot.LoadBalancer
|
||||
{
|
||||
public class LoadBalancerCreator
|
||||
public class LoadBalancerCreator : ILoadBalancerCreator
|
||||
{
|
||||
private readonly ILoadBalancerHouse _loadBalancerHouse;
|
||||
private readonly ILoadBalancerFactory _loadBalanceFactory;
|
||||
|
Reference in New Issue
Block a user