簡體   English   中英

無法連接kafka集群時無異常

[英]No exception when unable to connect to kafka cluster

當程序無法連接到 kafka 集群時,我無法獲得異常。 代碼在控制台日志中輸出異常,但我需要它拋出異常。 我正在使用這個 c# 庫: https://github.com/confluentinc/confluent-kafka-do.net

ProducerConfig _configKafka = new ProducerConfig { BootstrapServers ="localhost:9092/" };

ProducerBuilder<string, string> _kafkaProducer = new ProducerBuilder<string, string>(_configKafka);
using (var kafkaProducer = _kafkaProducer.Build())
{

    try
    {
        var dr = kafkaProducer.ProduceAsync("Kafka_Messages", new Message<string, string> { Key = null, Value = $"message {i++}" });
        dr.Wait(TimeSpan.FromSeconds(10));

        if(dr.Exception!=null)
        {
            Console.WriteLine($"Delivery failed:");
        }

        var status = dr.Status;

        //Console.WriteLine($"Delivered '{dr.Value}' to '{dr.TopicPartitionOffset}'");
    }

    catch (ProduceException<Null, string> e)
    {
        Console.WriteLine($"Delivery failed: {e.Error.Reason}");
    }
}

下面是 confluent-kafka 在控制台打印的錯誤:

%3|1565248275.024|FAIL|rdkafka#producer-1| [thrd:localhst:9092/bootstrap]: localhst:9092/bootstrap: Failed to resolve 'localhst:9092': No such host is known.  (after 2269ms in state CONNECT)
%3|1565248275.024|ERROR|rdkafka#producer-1| [thrd:localhst:9092/bootstrap]: localhst:9092/bootstrap: Failed to resolve 'localhst:9092': No such host is known.  (after 2269ms in state CONNECT)
%3|1565248275.025|ERROR|rdkafka#producer-1| [thrd:localhst:9092/bootstrap]: 1/1 brokers are down

為了在您的應用程序中獲取實際的異常,您需要添加.SetErrorHandler()

    ProducerBuilder<string, string> _kafkaProducer = new ProducerBuilder<string, string>(_configKafka);

    using (var kafkaProducer = _kafkaProducer.SetErrorHandler((producer, error) =>
                        {
                           //You can handle error right here

                        }).Build())

error.Reason包含錯誤消息

您可以在消費者和生產者代碼中同時使用.SetLogHandler.SetErrorHandler 否則它會在不提供太多細節的情況下默默地失敗。 您可以將消息轉發到那里的記錄器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM