[英]Kafka Producer in Java Error
我對Kafka很陌生。 我的Zookeeper服務器在2181端口上運行,而Kafka服務器在9092端口上運行。我已經用Java編寫了一個簡單生產者。 但是無論何時運行該程序,它都會顯示以下錯誤:
USAGE: java [options] KafkaServer server.properties [--override property=value]*
Option Description
------ -----------
--override Optional property that should override values set in server.properties file
我正在將Netbeans IDE與JDK 8一起使用,並且已在庫中包含所有Kafka jar文件。 我相信庫文件中沒有錯誤,因為代碼可以正確構建但無法運行。
這是簡單生產者代碼:
package kafka;
import kafka.javaapi.producer.Producer;
import kafka.producer.KeyedMessage;
import kafka.producer.ProducerConfig;
import java.util.Properties;
public class Kafka {
private static Producer<Integer, String> producer;
private final Properties properties = new Properties();
public Kafka() {
properties.put("metadata.broker.list", "localhost:9092");
properties.put("serializer.class", "kafka.serializer.StringEncoder");
properties.put("request.required.acks", "1");
producer = new Producer<>(new ProducerConfig(properties));
}
public static void main(String args[]) {
Kafka k = new Kafka();
String topic = "test";
String msg = "hello world";
KeyedMessage<Integer, String> data = new KeyedMessage<>(topic, msg);
producer.send(data);
producer.close();
}
}
請幫助:)
看來Netbeans執行了錯誤的類-不是您的kafka.Kafka
類,而是KafkaServer
(看起來這是Kafka本身的主要類)。 請配置Netbeans以執行正確的類。
我建議從Confluent Examples的現有Producer 示例開始 ,然后重用Maven項目...
我認為您的生產者配置錯誤。 這是來自Kafka官方文檔的示例:
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("acks", "all");
props.put("retries", 0);
props.put("batch.size", 16384);
props.put("linger.ms", 1);
props.put("buffer.memory", 33554432);
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
只需為batch.size
和buffer.memory
嘗試較小的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.