public IConsumerManager Create(IConsumerConfiguration configuration, IDependencyResolver resolver) { var logHandler = resolver.Resolve <ILogHandler>(); var middlewares = configuration.MiddlewareConfiguration.Factories .Select(factory => factory(resolver)) .ToList(); var consumer = new Consumer(configuration, logHandler); var consumerWorkerPool = new ConsumerWorkerPool( consumer, resolver, logHandler, new MiddlewareExecutor(middlewares), configuration.DistributionStrategyFactory); var feeder = new WorkerPoolFeeder( consumer, consumerWorkerPool, logHandler); var consumerManager = new ConsumerManager( consumer, consumerWorkerPool, feeder, logHandler); return(consumerManager); }
public async Task StartAsync(CancellationToken stopCancellationToken = default) { foreach (var consumerConfiguration in this.configuration.Clusters.SelectMany(cl => cl.Consumers)) { var dependencyScope = this.dependencyResolver.CreateScope(); var middlewares = consumerConfiguration.MiddlewareConfiguration.Factories .Select(factory => factory(dependencyScope.Resolver)) .ToList(); var consumerWorkerPool = new ConsumerWorkerPool( dependencyScope.Resolver, this.logHandler, new MiddlewareExecutor(middlewares), consumerConfiguration.DistributionStrategyFactory); var consumer = new KafkaConsumer( consumerConfiguration, this.consumerManager, this.logHandler, consumerWorkerPool, stopCancellationToken); this.consumers.Add(consumer); await consumer.StartAsync().ConfigureAwait(false); } }
public async Task Initialize(CancellationToken stopCancellationToken = default) { foreach (var vvv in config.GetSection("eventbus").GetChildren()) { var dependencyScope = this.dependencyResolver.CreateScope(); ConsumerSetting vconsumerConfiguration = new ConsumerSetting(); var consumerWorkerPool = new ConsumerWorkerPool( dependencyScope.Resolver, vconsumerConfiguration, this.logHandler ); var consumer = dependencyScope.Resolver.Resolve <IConsumerClient>("Kafka"); consumer.Initialize(vconsumerConfiguration); //var consumer = new KafkaConsumer( // vconsumerConfiguration, // this.consumerManager, // this.logHandler, // consumerWorkerPool, // stopCancellationToken); //this.consumers.Add(consumer); //await consumer.StartAsync().ConfigureAwait(false); // Console.WriteLine("Key = " + v.Key); } await Task.CompletedTask; }
public IConsumerManager Create(IConsumerConfiguration configuration, IDependencyResolver resolver) { var logHandler = resolver.Resolve <ILogHandler>(); var consumer = configuration.CustomFactory(new Consumer(configuration, resolver, logHandler), resolver); var consumerWorkerPool = new ConsumerWorkerPool( consumer, resolver, new MiddlewareExecutor(configuration.MiddlewaresConfigurations), configuration, logHandler); var feeder = new WorkerPoolFeeder( consumer, consumerWorkerPool, logHandler); var consumerManager = new ConsumerManager( consumer, consumerWorkerPool, feeder, logHandler); return(consumerManager); }
public async Task StartAsync(CancellationToken stopCancellationToken = default) { await this.Initialize(stopCancellationToken); foreach (var consumerConfiguration in this.configuration.Clusters.SelectMany(cl => cl.Consumers)) { var dependencyScope = this.dependencyResolver.CreateScope(); var consumerWorkerPool = new ConsumerWorkerPool(dependencyScope.Resolver, consumerConfiguration, this.logHandler); var consumer = new KafkaConsumer( consumerConfiguration, this.consumerManager, this.logHandler, consumerWorkerPool, stopCancellationToken); this.consumers.Add(consumer); await consumer.StartAsync().ConfigureAwait(false); } }