public RxKafkaConsumer(ConsumerOption option, ILogger logger) { _logger = logger; _topics = option.Topics; var config = new Dictionary <string, object> { { "bootstrap.servers", option.BrokerEndpoints }, { "api.version.request", true }, { "group.id", !string.IsNullOrEmpty(option.GroupId) ? option.GroupId : Guid.NewGuid().ToString() }, { "socket.blocking.max.ms", 1 }, { "enable.auto.commit", false }, //отключить автокоммит офсета после прочтения сообщения (ручной коммит через CommitAsync()) { "fetch.wait.max.ms", 5 }, { "fetch.error.backoff.ms", 5 }, { "fetch.message.max.bytes", 10240 }, { "queued.min.messages", 1000 }, #if DEB // { "debug", "msg" }, #endif { "default.topic.config", new Dictionary <string, object> { { "auto.offset.reset", "latest" } //(beginning) сместить офсет в конец раздела, если офсет нигде не сохранен. } } }; _consumer = new Consumer <Null, string>(config, new NullDeserializer(), new StringDeserializer(Encoding.UTF8)); _consumer.OnLog += OnLog; _consumer.OnError += OnError; _consumer.OnConsumeError += OnConsumeError; _consumer.OnPartitionEOF += OnPartitionEof; }
public InputDataAutofacModule(IConfigurationSection config) { BackgroundName = config["Name"]; AutoStartBg = bool.Parse(config["AutoStart"]); BatchSize = int.Parse(config["BatchSize"]); ConsumerOption = new ConsumerOption { BrokerEndpoints = config["BrokerEndpoints"], GroupId = config["GroupId"], Topics = new List <string> { config["Topics"] } }; }
public Consumer(ConsumerOption consumerOption) { _consumerOption = consumerOption; _context = new TContext(); }
/// <summary> /// consumer option /// </summary> public void SelectConsumerOption() { ConsumerOption.Wait(3).Click(); }