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); }
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(); }
public Response <ILoadBalancer> Create(DownstreamRoute route, IServiceDiscoveryProvider serviceProvider) { return(new OkResponse <ILoadBalancer>(new RoundRobin(async() => await serviceProvider.Get()))); }
public Response <ILoadBalancer> Create(DownstreamReRoute reRoute, IServiceDiscoveryProvider serviceProvider) { return(new OkResponse <ILoadBalancer>(new LeastConnection(async() => await serviceProvider.Get(), reRoute.ServiceName))); }
private async Task Poll() { _services = await _ZookeeperServiceDiscoveryProvider.Get(); }
private async Task Poll() { _logger.LogDebug("services updated."); _services = await _consulServiceDiscoveryProvider.Get(); }