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 static ENodeConfiguration UseEQueue(this ENodeConfiguration enodeConfiguration) { var configuration = enodeConfiguration.GetCommonConfiguration(); configuration.RegisterEQueueComponents(); var producerSetting = new ProducerSetting { NameServerList = new List <IPEndPoint> { new IPEndPoint(SocketUtils.GetLocalIPV4(), ConfigSettings.NameServerPort) } }; var consumerSetting = new ConsumerSetting { NameServerList = new List <IPEndPoint> { new IPEndPoint(SocketUtils.GetLocalIPV4(), ConfigSettings.NameServerPort) } }; _domainEventPublisher = new DomainEventPublisher(producerSetting); configuration.SetDefault <IMessagePublisher <DomainEventStreamMessage>, DomainEventPublisher>(_domainEventPublisher); _commandService = new CommandService(null, producerSetting); configuration.SetDefault <ICommandService, CommandService>(_commandService); _commandConsumer = new CommandConsumer("RegistrationCommandConsumerGroup", consumerSetting).Subscribe(Topics.RegistrationCommandTopic); _eventConsumer = new DomainEventConsumer("RegistrationEventConsumerGroup", consumerSetting).Subscribe(Topics.RegistrationDomainEventTopic); _applicationMessageConsumer = new ApplicationMessageConsumer("RegistrationMessageConsumerGroup", consumerSetting) .Subscribe(Topics.ConferenceApplicationMessageTopic) .Subscribe(Topics.PaymentApplicationMessageTopic); return(enodeConfiguration); }
public static ENodeConfiguration UseEQueue(this ENodeConfiguration enodeConfiguration) { var configuration = enodeConfiguration.GetCommonConfiguration(); configuration.RegisterEQueueComponents(); var producerSetting = new ProducerSetting { BrokerAddress = new IPEndPoint(ConfigSettings.BrokerAddress, ConfigSettings.BrokerProducerPort), BrokerAdminAddress = new IPEndPoint(ConfigSettings.BrokerAddress, ConfigSettings.BrokerAdminPort) }; var consumerSetting = new ConsumerSetting { BrokerAddress = new IPEndPoint(ConfigSettings.BrokerAddress, ConfigSettings.BrokerConsumerPort), BrokerAdminAddress = new IPEndPoint(ConfigSettings.BrokerAddress, ConfigSettings.BrokerAdminPort) }; _applicationMessagePublisher = new ApplicationMessagePublisher(producerSetting); _domainEventPublisher = new DomainEventPublisher(producerSetting); _exceptionPublisher = new PublishableExceptionPublisher(producerSetting); configuration.SetDefault <IMessagePublisher <IApplicationMessage>, ApplicationMessagePublisher>(_applicationMessagePublisher); configuration.SetDefault <IMessagePublisher <DomainEventStreamMessage>, DomainEventPublisher>(_domainEventPublisher); configuration.SetDefault <IMessagePublisher <IPublishableException>, PublishableExceptionPublisher>(_exceptionPublisher); _commandConsumer = new CommandConsumer("NCasCommandConsumerGroup", consumerSetting).Subscribe(Topics.NCasCommandTopic); _applicationMessageConsumer = new ApplicationMessageConsumer("NCasApplicationMessageConsumerGroup", consumerSetting).Subscribe(Topics.NCasApplicationMessageTopic); _eventConsumer = new DomainEventConsumer("NCasEventConsumerGroup", consumerSetting).Subscribe(Topics.NCasDomainEventTopic); _exceptionConsumer = new PublishableExceptionConsumer("NCasExceptionConsumerGroup", consumerSetting).Subscribe(Topics.NCasExceptionTopic); return(enodeConfiguration); }
public static ENodeConfiguration UseEQueue(this ENodeConfiguration enodeConfiguration) { var configuration = enodeConfiguration.GetCommonConfiguration(); configuration.RegisterEQueueComponents(); var producerSetting = new ProducerSetting { BrokerAddress = new IPEndPoint(SocketUtils.GetLocalIPV4(), ConfigSettings.BrokerProducerPort), BrokerAdminAddress = new IPEndPoint(SocketUtils.GetLocalIPV4(), ConfigSettings.BrokerAdminPort) }; var consumerSetting = new ConsumerSetting { BrokerAddress = new IPEndPoint(SocketUtils.GetLocalIPV4(), ConfigSettings.BrokerConsumerPort), BrokerAdminAddress = new IPEndPoint(SocketUtils.GetLocalIPV4(), ConfigSettings.BrokerAdminPort) }; _applicationMessagePublisher = new ApplicationMessagePublisher(producerSetting); _domainEventPublisher = new DomainEventPublisher(producerSetting); configuration.SetDefault <IMessagePublisher <IApplicationMessage>, ApplicationMessagePublisher>(_applicationMessagePublisher); configuration.SetDefault <IMessagePublisher <DomainEventStreamMessage>, DomainEventPublisher>(_domainEventPublisher); _commandConsumer = new CommandConsumer("PaymentCommandConsumerGroup", consumerSetting).Subscribe(Topics.PaymentCommandTopic); _eventConsumer = new DomainEventConsumer("PaymentEventConsumerGroup", consumerSetting).Subscribe(Topics.PaymentDomainEventTopic); return(enodeConfiguration); }
static void InitializeEQueue() { ECommonConfiguration .Create() .UseAutofac() .RegisterCommonComponents() .UseLog4Net() .UseJsonNet() .RegisterUnhandledExceptionHandler() .RegisterEQueueComponents(); var address = ConfigurationManager.AppSettings["BrokerAddress"]; var brokerAddress = string.IsNullOrEmpty(address) ? SocketUtils.GetLocalIPV4() : IPAddress.Parse(address); var clientCount = int.Parse(ConfigurationManager.AppSettings["ClientCount"]); var setting = new ConsumerSetting { ConsumeFromWhere = ConsumeFromWhere.FirstOffset, MessageHandleMode = MessageHandleMode.Parallel, BrokerAddress = new IPEndPoint(brokerAddress, 5001), BrokerAdminAddress = new IPEndPoint(brokerAddress, 5002) }; var messageHandler = new MessageHandler(); for (var i = 1; i <= clientCount; i++) { new Consumer(ConfigurationManager.AppSettings["ConsumerGroup"], setting) .Subscribe(ConfigurationManager.AppSettings["Topic"]) .SetMessageHandler(messageHandler) .Start(); } }
static void Main(string[] args) { using (var bootstrapper = new AbpBootstrapper()) { bootstrapper.Initialize(); var address = ConfigurationManager.AppSettings["BrokerAddress"]; var brokerAddress = string.IsNullOrEmpty(address) ? SocketUtils.GetLocalIPV4() : IPAddress.Parse(address); var clientCount = int.Parse(ConfigurationManager.AppSettings["ClientCount"]); var setting = new ConsumerSetting { ConsumeFromWhere = ConsumeFromWhere.FirstOffset, MessageHandleMode = MessageHandleMode.Parallel, BrokerAddress = new IPEndPoint(brokerAddress, 5001), BrokerAdminAddress = new IPEndPoint(brokerAddress, 5002) }; var messageHandler = new MessageHandler(); for (var i = 1; i <= clientCount; i++) { new BodeAbp.Queue.Clients.Consumers.Consumer(ConfigurationManager.AppSettings["ConsumerGroup"], setting) .Subscribe(ConfigurationManager.AppSettings["Topic"]) .SetMessageHandler(messageHandler) .Start(); } Console.ReadLine(); } }
public static ENodeConfiguration StartEQueue(this ENodeConfiguration enodeConfiguration) { var producerSetting = new ProducerSetting { NameServerList = new List <IPEndPoint> { new IPEndPoint(SocketUtils.GetLocalIPV4(), ConfigSettings.NameServerPort) } }; var consumerSetting = new ConsumerSetting { NameServerList = new List <IPEndPoint> { new IPEndPoint(SocketUtils.GetLocalIPV4(), ConfigSettings.NameServerPort) } }; _domainEventPublisher.InitializeEQueue(producerSetting); _exceptionPublisher.InitializeEQueue(producerSetting); _applicationMessagePublisher.InitializeEQueue(producerSetting); _commandConsumer = new CommandConsumer().InitializeEQueue("ConferenceCommandConsumerGroup", consumerSetting).Subscribe(Topics.ConferenceCommandTopic); _eventConsumer = new DomainEventConsumer().InitializeEQueue("ConferenceEventConsumerGroup", consumerSetting).Subscribe(Topics.ConferenceDomainEventTopic); _exceptionConsumer = new PublishableExceptionConsumer().InitializeEQueue("ConferenceExceptionConsumerGroup", consumerSetting).Subscribe(Topics.ConferenceExceptionTopic); _exceptionConsumer.Start(); _eventConsumer.Start(); _commandConsumer.Start(); _applicationMessagePublisher.Start(); _domainEventPublisher.Start(); _exceptionPublisher.Start(); return(enodeConfiguration); }
public PublishableExceptionConsumer InitializeKafka(ConsumerSetting consumerSetting) { InitializeENode(); Consumer = new Consumer(consumerSetting); return(this); }
public DomainEventConsumer InitializeKafka(ConsumerSetting consumerSetting, bool sendEventHandledMessage = true) { InitializeENode(sendEventHandledMessage); Consumer = new Consumer(consumerSetting); return(this); }
public ApplicationMessageConsumer InitializeKafka(ConsumerSetting consumerSetting) { InitializeENode(); Consumer = new Consumer(consumerSetting); return(this); }
public CommandConsumer InitializeKafka(ConsumerSetting consumerSetting) { InitializeENode(); Consumer = new Consumer(consumerSetting); return(this); }
public static ENodeConfiguration UseEQueue(this ENodeConfiguration enodeConfiguration) { var configuration = enodeConfiguration.GetCommonConfiguration(); var brokerStorePath = @"c:\person-equeue-store-test"; if (Directory.Exists(brokerStorePath)) { Directory.Delete(brokerStorePath, true); } configuration.RegisterEQueueComponents(); var nameServerEndpoint = new IPEndPoint(IPAddress.Loopback, ConfigSettings.NameServerPort); var nameServerEndpoints = new List <IPEndPoint> { nameServerEndpoint }; var nameServerSetting = new NameServerSetting() { BindingAddress = nameServerEndpoint }; _nameServer = new NameServerController(nameServerSetting); var brokerSetting = new BrokerSetting(false, brokerStorePath); brokerSetting.NameServerList = nameServerEndpoints; brokerSetting.BrokerInfo.ProducerAddress = new IPEndPoint(IPAddress.Loopback, ConfigSettings.BrokerProducerPort).ToAddress(); brokerSetting.BrokerInfo.ConsumerAddress = new IPEndPoint(IPAddress.Loopback, ConfigSettings.BrokerConsumerPort).ToAddress(); brokerSetting.BrokerInfo.AdminAddress = new IPEndPoint(IPAddress.Loopback, ConfigSettings.BrokerAdminPort).ToAddress(); _broker = BrokerController.Create(brokerSetting); var producerSetting = new ProducerSetting { NameServerList = new List <IPEndPoint> { new IPEndPoint(IPAddress.Loopback, ConfigSettings.NameServerPort) } }; var consumerSetting = new ConsumerSetting { NameServerList = new List <IPEndPoint> { new IPEndPoint(IPAddress.Loopback, ConfigSettings.NameServerPort) } }; _commandResultProcessor = new CommandResultProcessor(new IPEndPoint(IPAddress.Loopback, 9003)); _commandService = new CommandService(_commandResultProcessor, producerSetting); _eventPublisher = new DomainEventPublisher(producerSetting); configuration.SetDefault <ICommandService, CommandService>(_commandService); configuration.SetDefault <IMessagePublisher <DomainEventStreamMessage>, DomainEventPublisher>(_eventPublisher); _commandConsumer = new CommandConsumer(setting: consumerSetting) .Subscribe(Topics.PersonCommandTopic); _eventConsumer = new DomainEventConsumer(setting: consumerSetting) .Subscribe(Topics.PersonDomainEventTopic); return(enodeConfiguration); }
public DomainExceptionConsumer InitializeKafka(ConsumerSetting setting) { InitializeENode(); Consumer = new Consumer(setting); _topicsManager = new TopicsManager(setting.BootstrapServers); return(this); }
public ApplicationMessageConsumer InitializeKafka(ConsumerSetting setting) { InitializeENode(); Consumer = new Consumer(setting); _topicsManager = new TopicsManager(setting.BootstrapServers); return(this); }
public DomainEventConsumer InitializeKafka(ConsumerSetting setting, bool sendEventHandledMessage = true) { InitializeENode(sendEventHandledMessage); Consumer = new Consumer(setting); _topicsManager = new TopicsManager(setting.BootstrapServers); return(this); }
public CommandConsumer InitializeEQueue(string groupName = null, ConsumerSetting setting = null) { InitializeENode(); Consumer = new Consumer(groupName ?? DefaultCommandConsumerGroup, setting ?? new ConsumerSetting { ConsumeFromWhere = ConsumeFromWhere.FirstOffset }, "CommandConsumer"); return(this); }
public ApplicationMessageConsumer(string groupName = null, ConsumerSetting setting = null) { _consumer = new Consumer(groupName ?? DefaultMessageConsumerGroup, setting ?? new ConsumerSetting { MessageHandleMode = MessageHandleMode.Sequential }); _jsonSerializer = ObjectContainer.Resolve <IJsonSerializer>(); _processor = ObjectContainer.Resolve <IMessageProcessor <ProcessingApplicationMessage, IApplicationMessage, bool> >(); _typeCodeProvider = ObjectContainer.Resolve <ITypeCodeProvider>(); }
public PublishableExceptionConsumer(string groupName = null, ConsumerSetting setting = null) { _consumer = new Consumer(groupName ?? DefaultExceptionConsumerGroup, setting ?? new ConsumerSetting { MessageHandleMode = MessageHandleMode.Sequential }); _jsonSerializer = ObjectContainer.Resolve <IJsonSerializer>(); _publishableExceptionProcessor = ObjectContainer.Resolve <IMessageProcessor <ProcessingPublishableExceptionMessage, IPublishableException, bool> >(); _publishableExceptionTypeCodeProvider = ObjectContainer.Resolve <ITypeCodeProvider>(); }
public CommandConsumer(string groupName = null, ConsumerSetting setting = null) { _consumer = new Consumer(groupName ?? DefaultCommandConsumerGroup, setting); _sendReplyService = new SendReplyService(); _jsonSerializer = ObjectContainer.Resolve <IJsonSerializer>(); _typeNameProvider = ObjectContainer.Resolve <ITypeNameProvider>(); _processor = ObjectContainer.Resolve <IMessageProcessor <ProcessingCommand, ICommand, CommandResult> >(); _repository = ObjectContainer.Resolve <IRepository>(); _logger = ObjectContainer.Resolve <ILoggerFactory>().Create(GetType().FullName); }
public ApplicationMessageConsumer InitializeEQueue(string groupName = null, ConsumerSetting setting = null) { InitializeENode(); Consumer = new Consumer(groupName ?? DefaultMessageConsumerGroup, setting ?? new ConsumerSetting { MessageHandleMode = MessageHandleMode.Sequential, ConsumeFromWhere = ConsumeFromWhere.FirstOffset }, "ApplicationMessageConsumer"); return(this); }
public DomainEventConsumer InitializeEQueue(string groupName = null, ConsumerSetting setting = null, bool sendEventHandledMessage = true) { InitializeENode(sendEventHandledMessage); Consumer = new Consumer(groupName ?? DefaultEventConsumerGroup, setting ?? new ConsumerSetting { MessageHandleMode = MessageHandleMode.Sequential, ConsumeFromWhere = ConsumeFromWhere.FirstOffset }, "DomainEventConsumer"); return(this); }
public MessageConsumer( IConsumerClient consumerClient, IConsumerWorkerPool workerPool, ConsumerSetting configuration, ILogHandler logHandler) { this.workerPool = workerPool; this.configuration = configuration; this.logHandler = logHandler; this.consumerClient = consumerClient; }
public MessageConsumer(string id, ConsumerSetting consumerSetting, string groupName, string subscribeTopic) : this() { SubscribeTopic = subscribeTopic; Name = id; _Logger = IoCFactory.Resolve <ILoggerFactory>().Create(Name); Consumer = new Consumer(id, groupName, consumerSetting) .Subscribe(subscribeTopic) .SetMessageHandler(this); }
public PublishableExceptionConsumer(string groupName = null, ConsumerSetting setting = null) { _consumer = new Consumer(groupName ?? DefaultExceptionConsumerGroup, setting ?? new ConsumerSetting { MessageHandleMode = MessageHandleMode.Sequential, ConsumeFromWhere = ConsumeFromWhere.FirstOffset }); _jsonSerializer = ObjectContainer.Resolve <IJsonSerializer>(); _publishableExceptionProcessor = ObjectContainer.Resolve <IMessageProcessor <ProcessingPublishableExceptionMessage, IPublishableException> >(); _typeNameProvider = ObjectContainer.Resolve <ITypeNameProvider>(); _logger = ObjectContainer.Resolve <ILoggerFactory>().Create(GetType().FullName); }
public static ENodeConfiguration UseEQueue(this ENodeConfiguration enodeConfiguration) { var configuration = enodeConfiguration.GetCommonConfiguration(); configuration.RegisterEQueueComponents(); //生产者设置 var producerSetting = new ProducerSetting { NameServerList = new List <IPEndPoint> { new IPEndPoint(SocketUtils.GetLocalIPV4(), ConfigSettings.NameServerPort) } }; //消费者设置 var consumerSetting = new ConsumerSetting { NameServerList = new List <IPEndPoint> { new IPEndPoint(SocketUtils.GetLocalIPV4(), ConfigSettings.NameServerPort) } }; //命令生成者 _commandService = new CommandService(); _commandService.Initialize(setting: producerSetting); //事件生产者 _domainEventPublisher = new DomainEventPublisher().Initialize(setting: producerSetting); //消息生产者 _applicationMessagePublisher = new ApplicationMessagePublisher().Initialize(setting: producerSetting); //异常生产者 _exceptionPublisher = new PublishableExceptionPublisher().Initialize(setting: producerSetting); configuration.SetDefault <ICommandService, CommandService>(_commandService); configuration.SetDefault <IMessagePublisher <DomainEventStreamMessage>, DomainEventPublisher>(_domainEventPublisher); configuration.SetDefault <IMessagePublisher <IApplicationMessage>, ApplicationMessagePublisher>(_applicationMessagePublisher); configuration.SetDefault <IMessagePublisher <IPublishableException>, PublishableExceptionPublisher>(_exceptionPublisher); //命令消费者 _commandConsumer = new CommandConsumer().Initialize(setting: consumerSetting) .Subscribe(Topics.ShopCommandTopic); //事件消费者 _eventConsumer = new DomainEventConsumer().Initialize(setting: consumerSetting) .Subscribe(Topics.ShopDomainEventTopic); //消息消费者 _applicationMessageConsumer = new ApplicationMessageConsumer().Initialize(setting: consumerSetting) .Subscribe(Topics.ShopApplicationMessageTopic); //异常消费者 _exceptionConsumer = new PublishableExceptionConsumer().Initialize(setting: consumerSetting) .Subscribe(Topics.ShopExceptionTopic); return(enodeConfiguration); }
public DomainEventConsumer(string groupName = null, ConsumerSetting setting = null, bool sendEventHandledMessage = true) { _consumer = new Consumer(groupName ?? DefaultEventConsumerGroup, setting ?? new ConsumerSetting { MessageHandleMode = MessageHandleMode.Sequential }); _sendReplyService = new SendReplyService(); _jsonSerializer = ObjectContainer.Resolve <IJsonSerializer>(); _eventSerializer = ObjectContainer.Resolve <IEventSerializer>(); _processor = ObjectContainer.Resolve <IMessageProcessor <ProcessingDomainEventStreamMessage, DomainEventStreamMessage, bool> >(); _logger = ObjectContainer.Resolve <ILoggerFactory>().Create(GetType().FullName); _sendEventHandledMessage = sendEventHandledMessage; }
public ApplicationMessageConsumer Initialize(string groupName = null, ConsumerSetting setting = null) { _consumer = new Consumer(groupName ?? DefaultMessageConsumerGroup, setting ?? new ConsumerSetting { MessageHandleMode = MessageHandleMode.Sequential, ConsumeFromWhere = ConsumeFromWhere.FirstOffset }); _jsonSerializer = ObjectContainer.Resolve <IJsonSerializer>(); _processor = ObjectContainer.Resolve <IMessageProcessor <ProcessingApplicationMessage, IApplicationMessage> >(); _typeNameProvider = ObjectContainer.Resolve <ITypeNameProvider>(); _logger = ObjectContainer.Resolve <ILoggerFactory>().Create(GetType().FullName); return(this); }
public static ENodeConfiguration StartKafka(this ENodeConfiguration enodeConfiguration) { if (_isKafkaStarted) { _commandService.InitializeENode(); _eventPublisher.InitializeENode(); _applicationMessagePublisher.InitializeENode(); _publishableExceptionPublisher.InitializeENode(); _commandConsumer.InitializeENode(); _eventConsumer.InitializeENode(); _applicationMessageConsumer.InitializeENode(); _publishableExceptionConsumer.InitializeENode(); return(enodeConfiguration); } var produceSetting = new ProducerSetting() { BrokerEndPoints = _brokerEndPoints }; _commandService.InitializeKafka(produceSetting, new CommandResultProcessor().Initialize(SocketUtils.GetLocalIPV4().ToString(), 9001));//Dns.GetHostName() _eventPublisher.InitializeKafka(produceSetting); _applicationMessagePublisher.InitializeKafka(produceSetting); _publishableExceptionPublisher.InitializeKafka(produceSetting); var consumerSetting = new ConsumerSetting() { BrokerEndPoints = _brokerEndPoints, CommitConsumerOffsetInterval = 100 }; _commandConsumer = new CommandConsumer().InitializeKafka(consumerSetting).Subscribe("CommandTopic"); _eventConsumer = new DomainEventConsumer().InitializeKafka(consumerSetting).Subscribe("EventTopic"); _applicationMessageConsumer = new ApplicationMessageConsumer().InitializeKafka(consumerSetting).Subscribe("ApplicationMessageTopic"); _publishableExceptionConsumer = new PublishableExceptionConsumer().InitializeKafka(consumerSetting).Subscribe("PublishableExceptionTopic"); _eventConsumer.Start(); _commandConsumer.Start(); _applicationMessageConsumer.Start(); _publishableExceptionConsumer.Start(); _applicationMessagePublisher.Start(); _publishableExceptionPublisher.Start(); _eventPublisher.Start(); _commandService.Start(); _isKafkaStarted = true; return(enodeConfiguration); }
public CommandConsumer(string groupName = null, ConsumerSetting setting = null) { _consumer = new Consumer(groupName ?? DefaultCommandConsumerGroup, setting ?? new ConsumerSetting { ConsumeFromWhere = ConsumeFromWhere.FirstOffset }); _sendReplyService = new SendReplyService(); _jsonSerializer = ObjectContainer.Resolve <IJsonSerializer>(); _typeNameProvider = ObjectContainer.Resolve <ITypeNameProvider>(); _processor = ObjectContainer.Resolve <ICommandProcessor>(); _repository = ObjectContainer.Resolve <IRepository>(); _aggregateRootStorage = ObjectContainer.Resolve <IAggregateStorage>(); _logger = ObjectContainer.Resolve <ILoggerFactory>().Create(GetType().FullName); }
public ConsumerWorker( IConsumerClient consumerClient, int workerId, ConsumerSetting configuration, IOffsetManager offsetManager, ILogHandler logHandler, IMiddlewareExecutor middlewareExecutor) { this.Id = workerId; this.consumerClient = consumerClient; this.configuration = configuration; this.offsetManager = offsetManager; this.logHandler = logHandler; this.middlewareExecutor = middlewareExecutor; this.messagesBuffer = Channel.CreateBounded <IntermediateMessage>(configuration.BufferSize); }