【问题标题】:Unable to connect to Kafka server using .net无法使用 .net 连接到 Kafka 服务器
【发布时间】:2023-02-01 22:24:30
【问题描述】:

我无法从 .net 连接到 Kafka 服务器。我们有 truststore.jks 文件,我们使用以下命令创建 .pem 文件

keytool -exportcert -alias $alias -keystore $keyStore -rfc -file $outputFolder/certificate.pem -storepass $password

echo "Generating key.pem"
keytool -v -importkeystore -srckeystore $keyStore -srcalias $alias -destkeystore $outputFolder/cert_and_key.p12 -deststoretype PKCS12 -storepass $password -srcstorepass $password
openssl pkcs12 -in $outputFolder/cert_and_key.p12 -nodes -nocerts -out $outputFolder/key.pem -passin pass:$password

echo "Generating CARoot.pem"
keytool -exportcert -alias $alias -keystore $keyStore -rfc -file $outputFolder/CARoot.pem -storepass $password

我的 .net 生产者配置如下所示

ProducerConfig config = new ProducerConfig
{
    BootstrapServers = bootstrapServers,
    SecurityProtocol = SecurityProtocol.Ssl,
    SslCaLocation = @"C:\Users\ProduceKafkaMessages\CARoot\CARoot.pem"
};


using (var producer = new ProducerBuilder<Null, string>(config).Build())
{
    try
    {
        var deliveryStatus = producer.ProduceAsync(topicName, new Message<Null, string> { Value = KafkaMessage }).Result;
        //producer.Flush(TimeSpan.FromSeconds(10));
    }
    catch (Exception ex)
    {
        
    }
}

但每次它都会抛出异常为“本地:消息超时”。 这里服务器上的配置是“没有启用任何 ACL 的启用 SSL 的 Kafka”。

我在 Python 中尝试过同样的事情,我能够成功发送 kafka 主题。下面是python代码

from kafka import KafkaProducer
producer = KafkaProducer(bootstrap_servers=kafkaBrokers,
                          security_protocol='SSL',
                          ssl_cafile='CARoot.pem',
                          ssl_password="XXXXX")

producer.send(topic, bytes('hello','utf-8'))
producer.flush()

为什么它在 .net 中不起作用。有什么帮助吗?

【问题讨论】:

    标签: c# .net apache-kafka confluent-platform confluent-kafka-dotnet


    【解决方案1】:

    你应该使用

    SslCaPem = File.ReadAllLines(@"C:UsersProduceKafkaMessagesCARootCARoot.pem");
    

    而不是你的

    SslCaLocation = @"C:UsersProduceKafkaMessagesCARootCARoot.pem"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-28
      • 2018-04-13
      • 1970-01-01
      • 2020-09-09
      • 2017-10-29
      • 2021-09-02
      • 1970-01-01
      相关资源
      最近更新 更多