簡體   English   中英

簡單的kafkaProducer程序無法在Java中運行

[英]Simple kafkaProducer program not working in Java

我無法使它正常工作。 我正在嘗試將簡單的測試消息推送到kafka主題。 下面是代碼和錯誤

    Properties props = new Properties();
    props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "kafkaBrokerfqdn:6667");
    props.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, "SASL_PLAINTEXT");
    props.put(ProducerConfig.ACKS_CONFIG, "all");
    props.put(ProducerConfig.RETRIES_CONFIG, "3");
    props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer");
    props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer");
    props.put("java.security.auth.login.config", "kafka_client_jaas.conf");

    Producer<String, String> kProducer = new KafkaProducer<String, String>(props);
    kProducer.send(new ProducerRecord<String, String>("test_topic", "testMessage"));
    kProducer.close();

以下是我面臨的錯誤。 我將jaas conf與jar放在同一目錄中。

Exception in thread "main" org.apache.kafka.common.KafkaException: Failed to construct kafka producer
    at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:338)
    at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:188)
    at com.training.KProducer.main(KProducer.java:34)
Caused by: org.apache.kafka.common.KafkaException: org.apache.kafka.common.KafkaException: Jaas configuration not found
    at org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:86)
    at org.apache.kafka.common.network.ChannelBuilders.create(ChannelBuilders.java:71)
    at org.apache.kafka.clients.ClientUtils.createChannelBuilder(ClientUtils.java:85)
    at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:302)
    ... 2 more
Caused by: org.apache.kafka.common.KafkaException: Jaas configuration not found
    at org.apache.kafka.common.security.kerberos.KerberosLogin.getServiceName(KerberosLogin.java:299)
    at org.apache.kafka.common.security.kerberos.KerberosLogin.configure(KerberosLogin.java:103)
    at org.apache.kafka.common.security.authenticator.LoginManager.<init>(LoginManager.java:45)
    at org.apache.kafka.common.security.authenticator.LoginManager.acquireLoginManager(LoginManager.java:68)
    at org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:78)
    ... 5 more
Caused by: java.io.IOException: Could not find a 'KafkaClient' entry in this configuration.
    at org.apache.kafka.common.security.JaasUtils.jaasConfig(JaasUtils.java:50)
    at org.apache.kafka.common.security.kerberos.KerberosLogin.getServiceName(KerberosLogin.java:297)
    ... 9 more

java.security.auth.login.config是系統屬性。 您應該將其作為參數傳遞給運行生產者的JVM。

-Djava.security.auth.login.config=${CONFIG_HOME}/kafka_client_jaas.conf

暫無
暫無

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

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