コード例 #1
0
        // based on https://github.com/confluentinc/examples/blob/6.1.1-post/clients/cloud/csharp/Program.cs
        static async Task Main(string[] args)
        {
            var topic = args.Length > 0
                            ? args[0]
                            : "sample-topic";

            var config = Config.Create();

            await TopicHelpers.TryDeleteTopic(topic, config);

            await TopicHelpers.TryCreateTopic(
                topic,
                numPartitions : 3,
                replicationFactor : 1,
                config);

            await ConsumeAndProduceMessages(topic, config);

            Console.WriteLine($"Shut down complete");
        }
コード例 #2
0
        private static async Task ConsumeAgainstNonExistentTopic(string topic, ClientConfig config)
        {
            using var consumer = Consumer.Create(enableAutoCommit: true, topic, consumerName: "FailingConsumer 1");

            Console.WriteLine($"Manually consuming non-existent topic...");

            // On Kafka.Confluent 1.5.3 this will throw, so success will be false
            // That creates an exception Span
            // On other versions, this _won't_ throw, and _won't_ create a span
            var success = consumer.Consume(retries: 1, timeoutMilliSeconds: 300);

            Console.WriteLine($"Manual consume complete, success {success}");

            // Create the topic and try again
            await TopicHelpers.TryCreateTopic(topic, numPartitions : 3, replicationFactor : 1, config);

            Console.WriteLine($"Manually consuming topic...");

            // manually try and consume. Should _not_ generate any spans, as nothing to consume
            // but on 1.5.3 this may generate some error spans
            success = consumer.Consume(retries: 5, timeoutMilliSeconds: 300);

            Console.WriteLine($"Manual consume finished, success {success}");
        }