【发布时间】:2021-09-30 06:06:42
【问题描述】:
已经没有错误,但是当我运行程序时,它无法识别另一个类中的序列化程序。这是它的样子。
public class Producer{
private static final Logger logger = LogManager.getLogger(Producer.class);
public static void main(String[] args) {
logger.info("Creating Kafka Producer...");
KafkaProducer<Integer, String> producer = new KafkaProducer<>(PropConfigs.prodProps());
// The code above should run and call the PropConfigs (properties of kafka)
logger.info("Start sending messages...");
for (int i = 1; i <= AppConfigs.numEvents; i++) {
producer.send(new ProducerRecord<>(AppConfigs.topicName, i, "Message " + i + " Test"), new Callback() {
@Override
public void onCompletion(RecordMetadata recordMetadata, Exception e) {
if(e == null){
logger.info("\nReceived metadata" + " Topic:" + recordMetadata.topic() + " Partition: " + recordMetadata.partition() + " Offset: " + recordMetadata.offset() + " Time: " + recordMetadata.timestamp() + "\n");
} else {
logger.error("Error", e);
e.printStackTrace();
}
}
});
}
logger.info("Finished - Closing Kafka Producer.");
producer.flush();
producer.close();
}
}
这是 PropConfigs 类,我将要从主类 Producer 调用的属性放在其中。
public class PropConfigs {
public static Properties prodProps(){
Properties props = new Properties();
props.setProperty(ProducerConfig.CLIENT_ID_CONFIG, AppConfigs.applicationID);
props.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, AppConfigs.bootstrapServers);
props.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, IntegerSerializer.class.getName());
props.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
props.setProperty(ProducerConfig.ACKS_CONFIG, "all");
props.setProperty(ProducerConfig.RETRIES_CONFIG, "3");
props.setProperty(ProducerConfig.MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION, "5");
return new Properties(props);
}
}
每当我运行它时,就像我说的那样,它无法识别我设置的属性。
【问题讨论】:
-
您是否在主应用程序类中使用@EnableConfiguration 注解。它无法识别这些属性,因为您已经设置了它们并且没有告诉 spring 它需要选择这些配置。
-
怎么做?你在上面看到的是代码
-
需要设置 props.put(ProducerConfig.ACKS_CONFIG, "all");
-
如果可以的话,请将整个项目push到github,我也可以帮你调试。
-
@GurkiratSinghGuliani 这不是春天
标签: java apache-kafka properties kafka-producer-api