public KafkaMessageBus(MessageBusSettings settings, KafkaMessageBusSettings kafkaSettings) : base(settings) { AssertSettings(settings); KafkaSettings = kafkaSettings; Log.Info("Creating producer"); _producer = CreateProducer(); Log.InfoFormat("Producer has been assigned name: {0}", _producer.Name); Log.Info("Creating subscribers"); foreach (var subscribersByGroup in settings.Consumers.GroupBy(x => x.Group)) { var group = subscribersByGroup.Key; foreach (var subscribersByMessageType in subscribersByGroup.GroupBy(x => x.MessageType)) { var messageType = subscribersByMessageType.Key; Log.InfoFormat("Creating consumer for topics {0}, group {1}, message type {2}", string.Join(",", subscribersByMessageType.Select(x => x.Topic)), group, messageType); var consumer = new KafkaGroupConsumer(this, group, messageType, subscribersByMessageType.ToList()); _groupConsumers.Add(consumer); } } if (settings.RequestResponse != null) { Log.InfoFormat("Creating response consumer for topic {0} and group {1}", settings.RequestResponse.Group, settings.RequestResponse.Topic); _groupConsumers.Add(new KafkaResponseConsumer(this, settings.RequestResponse)); } }
public KafkaMessageBus(MessageBusSettings settings, KafkaMessageBusSettings providerSettings) : base(settings) { ProviderSettings = providerSettings ?? throw new ArgumentNullException(nameof(providerSettings)); OnBuildProvider(); // TODO: Auto start should be a setting Start(); }
public KafkaMessageBus(MessageBusSettings settings, KafkaMessageBusSettings providerSettings) : base(settings) { _logger = LoggerFactory.CreateLogger <KafkaMessageBus>(); ProviderSettings = providerSettings ?? throw new ArgumentNullException(nameof(providerSettings)); OnBuildProvider(); // TODO: Auto start should be a setting Start(); }
public KafkaMessageBus(MessageBusSettings settings, KafkaMessageBusSettings kafkaSettings) : base(settings) { AssertSettings(settings); KafkaSettings = kafkaSettings; CreateProducer(); CreateGroupConsumers(settings); CreateProviders(); // TODO: Auto start should be a setting Start(); }
public static MessageBusBuilder WithProviderKafka(this MessageBusBuilder mbb, KafkaMessageBusSettings kafkaSettings) { return(mbb.WithProvider(settings => new KafkaMessageBus(settings, kafkaSettings))); }