[英]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.