mirror of
				https://github.com/nsnail/Ocelot.git
				synced 2025-11-04 20:10:50 +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