private static void Main(string[] args) { PingHost("kafka", true); string topic = Environment.GetEnvironmentVariable("TOPIC_NAME"); int messagesToProduce = 1000; var config = new Dictionary <string, object>() { { "bootstrap.servers", Environment.GetEnvironmentVariable("KAFKA_BROKER_LIST") } }; using (var producer = new Producer <Null, string>(config.ToList(), null, new StringSerializer(System.Text.Encoding.UTF8))) { XmlSerializer xmlSerializer = new XmlSerializer(typeof(ExtensionToSomeContract)); XmlSerializer xsSubmit2 = new XmlSerializer(typeof(SomeContract)); for (var i = 0; i < messagesToProduce; i++) { Random r = new Random((int)DateTime.Now.Ticks); SomeContract sc = new SomeContract() { Id = r.Next(0, int.MaxValue), Timestamp = DateTime.Now }; ExtensionToSomeContract ex = new ExtensionToSomeContract() { Id = sc.Id, Timestamp = sc.Timestamp, Payload = Guid.NewGuid().ToString() }; using (var sw = new StringWriter()) { using (XmlWriter writer = XmlWriter.Create(sw)) { xmlSerializer.Serialize(writer, ex); sc.Content = sw.ToString(); } } using (var sw = new StringWriter()) { using (XmlWriter writer = XmlWriter.Create(sw)) { xsSubmit2.Serialize(writer, sc); var messageToSend = sw.ToString(); producer.ProduceAsync(topic, null, messageToSend).GetAwaiter().GetResult(); if (i % 100 == 0) { producer.Flush(100); } } } } } }
public override void Poll() { if (_buffer.Count < config.BufferLimit) { XmlSerializer xsSubmit = new XmlSerializer(typeof(ExtensionToSomeContract)); XmlSerializer xsSubmit2 = new XmlSerializer(typeof(SomeContract)); for (var i = 0; i < 200; i++) { Random r = new Random((int)DateTime.Now.Ticks); SomeContract sc = new SomeContract() { Id = r.Next(0, int.MaxValue), Timestamp = DateTime.Now }; ExtensionToSomeContract ex = new ExtensionToSomeContract() { Id = sc.Id, Timestamp = sc.Timestamp, Payload = Guid.NewGuid().ToString() }; using (var sww = new StringWriter()) { using (XmlWriter writer = XmlWriter.Create(sww)) { xsSubmit.Serialize(writer, ex); sc.Content = sww.ToString(); // Your XML } } using (var sww = new StringWriter()) { using (XmlWriter writer = XmlWriter.Create(sww)) { xsSubmit2.Serialize(writer, sc); var ts = new Timestamp(DateTime.Now, TimestampType.CreateTime); var s = sww.ToString(); this.Consumer_OnMessage(this, new Message <Null, string>("", 1, 1, null, s, ts, null)); } } } } else { FlushBuffer(); } }