public Task <List <Service> > Get()
 {
     if (_services.Count == 0)
     {
         return(_consulServiceDiscoveryProvider.Get());
     }
     return(Task.FromResult(_services));
 }
        private static SwaggerServiceDiscoveryProvider CreateProvider(Service service = null)
        {
            IServiceDiscoveryProviderFactory     serviceDiscovery     = Substitute.For <IServiceDiscoveryProviderFactory>();
            IServiceProviderConfigurationCreator configurationCreator = Substitute.For <IServiceProviderConfigurationCreator>();
            IOptionsMonitor <FileConfiguration>  options  = Substitute.For <IOptionsMonitor <FileConfiguration> >();
            IHttpContextAccessor      httpContextAccessor = Substitute.For <IHttpContextAccessor>();
            IOptions <SwaggerOptions> swaggerOptions      = Substitute.For <IOptions <SwaggerOptions> >();

            options.CurrentValue.Returns(new FileConfiguration());

            IServiceDiscoveryProvider serviceProvider = Substitute.For <IServiceDiscoveryProvider>();

            serviceProvider.Get().Returns(new List <Service>()
            {
                service
            });
            var response = new OkResponse <IServiceDiscoveryProvider>(serviceProvider);

            serviceDiscovery.Get(Arg.Any <ServiceProviderConfiguration>(), Arg.Any <DownstreamRoute>()).Returns(response);

            var provider = new SwaggerServiceDiscoveryProvider(
                serviceDiscovery, configurationCreator, options, httpContextAccessor, swaggerOptions);

            return(provider);
        }
Ejemplo n.º 3
0
 public Response<ILoadBalancer> Create(DownstreamReRoute reRoute, IServiceDiscoveryProvider serviceProvider)
 {
     var loadBalancer = new RoundRobin(async () => await serviceProvider.Get());
     var bus = new InMemoryBus<StickySession>();
     return new OkResponse<ILoadBalancer>(new CookieStickySessions(loadBalancer, reRoute.LoadBalancerOptions.Key,
         reRoute.LoadBalancerOptions.ExpiryInMs, bus));
 }
        public override async Task Invoke(HttpContext context)
        {
            var serviceList = await _serviceDiscoveryProvider.Get(NetStepApiRoute.ServiceName);

            if (serviceList.IsError)
            {
                SetPipelineError(serviceList.Errors);
                return;
            }

            var service = await _serviceLoadBalancer.Get(serviceList.Data);

            var uriBuilder = CreateUriBuilder(service);

            NextHttpRequestMessage.RequestUri = uriBuilder.Uri;

            await _nextStep.Invoke(context);
        }
 private async Task Poll()
 {
     _services = await _consulServiceDiscoveryProvider.Get();
 }
Ejemplo n.º 6
0
 public Response <ILoadBalancer> Create(DownstreamRoute route, IServiceDiscoveryProvider serviceProvider)
 {
     return(new OkResponse <ILoadBalancer>(new RoundRobin(async() => await serviceProvider.Get())));
 }
Ejemplo n.º 7
0
 public Response <ILoadBalancer> Create(DownstreamReRoute reRoute, IServiceDiscoveryProvider serviceProvider)
 {
     return(new OkResponse <ILoadBalancer>(new LeastConnection(async() => await serviceProvider.Get(), reRoute.ServiceName)));
 }
Ejemplo n.º 8
0
 private async Task Poll()
 {
     _services = await _ZookeeperServiceDiscoveryProvider.Get();
 }
Ejemplo n.º 9
0
 private async Task Poll()
 {
     _logger.LogDebug("services updated.");
     _services = await _consulServiceDiscoveryProvider.Get();
 }