Пример #1
0
        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);
                            }
                        }
                    }
                }
            }
        }
Пример #2
0
        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();
            }
        }