Apache kafka org.apache.kafka.common.config.ConfigException:缺少必需的配置;bootstrap.servers“;它没有默认值

Apache kafka org.apache.kafka.common.config.ConfigException:缺少必需的配置;bootstrap.servers“;它没有默认值,apache-kafka,kafka-producer-api,Apache Kafka,Kafka Producer Api,在Eclipse中运行producer类时出现以下错误: org.apache.kafka.common.config.ConfigException:缺少没有默认值的必需配置“bootstrap.servers” 这是我的制作人课程: public class SimpleProducer { public static void main(String[] args) throws Exception { try { String topicName = "m

在Eclipse中运行producer类时出现以下错误: org.apache.kafka.common.config.ConfigException:缺少没有默认值的必需配置“bootstrap.servers”

这是我的制作人课程:

public class SimpleProducer {

  public static void main(String[] args) throws Exception {

    try {
        String topicName = "mytopic";
        String key = "key1";
        String value = "Value-1";

        Properties prop = new Properties();
        prop.put("bootstrap.server","localhost:9092");
        prop.put("key.serializer","org.apache.kafka.common.serialization.StringSerializer");
        prop.put("value.serializer","org.apache.kafka.cpmmon.serialization.StringSerializer");

        Producer<String, String> producer = new KafkaProducer<>(prop);

        ProducerRecord<String, String> record = new ProducerRecord<>(topicName,key,value);
        producer.send(record);
        producer.close();
        System.out.println("SimpleProducer Completed.");
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
}
公共类SimpleProducer{
公共静态void main(字符串[]args)引发异常{
试一试{
字符串topicName=“mytopic”;
字符串key=“key1”;
String value=“value-1”;
Properties prop=新属性();
prop.put(“bootstrap.server”,“localhost:9092”);
put(“key.serializer”、“org.apache.kafka.common.serialization.StringSerializer”);
put(“value.serializer”、“org.apache.kafka.cpmmon.serialization.StringSerializer”);
制作人=新卡夫卡制作人(道具);
ProducerRecord记录=新的ProducerRecord(主题名称、键、值);
制作人。发送(记录);
producer.close();
System.out.println(“SimpleProducer完成”);
}
捕获(例外e){
e、 printStackTrace();
}
}
}
有关于如何修复它的提示吗?

只需更改

prop.put(“bootstrap.server”,“localhost:9092”)

prop.put(“bootstrap.servers”,“localhost:9092”)

在你的代码里

prop.put("value.serializer",
         "org.apache.kafka.cpmmon.serialization.StringSerializer");
常见的
拼写不正确,正确的软件包是

org.apache.kafka.common.serialization.StringSerializer

使用以下内容,避免使用硬编码值

为了

使用


ProducerConfig将在org.apache.kafka.clients.producer包中找到,这里有两个观察结果

1. 替换

prop.put("bootstrap.server","localhost:9092");
org.apache.kafka.cpmmon.serialization.StringSerializer

bootstrap.server--不正确

bootstrap.servers--正确

2. 替换

prop.put("bootstrap.server","localhost:9092");
org.apache.kafka.cpmmon.serialization.StringSerializer


您拼错了属性键
“bootstrap.servers”
。为了避免将来出现这种错误,请改用常量
ProducerConfig.BOOTSTRAP\u SERVERS\u CONFIG
。为什么你从来都不接受任何问题的答案,OP?我试过这个例子,但有一个输入错误:cpmmon=>common。我无法编辑这篇文章,因为它少于8个字符。
org.apache.kafka.cpmmon.serialization.StringSerializer
org.apache.kafka.common.serialization.StringSerializer