Kafka 生产者出现 Java 错误
Kafka Producer in Java Error
我是 Kafka 的新手。我的 Zookeeper 服务器 运行ning 在端口 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
我正在使用带有 JDK 8 的 Netbeans IDE 并将所有 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();
}
}
请帮忙:)
我认为您的生产者配置有误。这是来自 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
尝试较小的值。
看起来 Netbeans 执行错误 class - 不是你的 kafka.Kafka
class,而是 KafkaServer
(看起来这是一个主要的 class卡夫卡本身)。请配置 Netbeans 以执行正确的 class.
我建议从 Confluent Examples 的现有 Producer 示例开始,并重新使用 Maven 项目...
我是 Kafka 的新手。我的 Zookeeper 服务器 运行ning 在端口 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
我正在使用带有 JDK 8 的 Netbeans IDE 并将所有 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();
}
}
请帮忙:)
我认为您的生产者配置有误。这是来自 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
尝试较小的值。
看起来 Netbeans 执行错误 class - 不是你的 kafka.Kafka
class,而是 KafkaServer
(看起来这是一个主要的 class卡夫卡本身)。请配置 Netbeans 以执行正确的 class.
我建议从 Confluent Examples 的现有 Producer 示例开始,并重新使用 Maven 项目...