【问题标题】:Kafka Producer in Java ErrorJava 中的 Kafka 生产者错误
【发布时间】:2018-11-24 21:54:41
【问题描述】:

我对卡夫卡很陌生。我的 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

我正在使用带有 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();
    }
}

请帮助:)

【问题讨论】:

  • 你从哪里得到的示例代码?

标签: java apache-kafka kafka-producer-api


【解决方案1】:

我认为您的生产者配置错误。以下是 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.sizebuffer.memory 尝试更小的值。

【讨论】:

    【解决方案2】:

    看起来 Netbeans 执行了错误的类 - 不是你的 kafka.Kafka 类,而是 KafkaServer(看起来这是 Kafka 本身的一个主要类)。请配置 Netbeans 以执行正确的类。

    我建议从Confluent Examples 的现有 Producer 示例开始,然后重新使用 Maven 项目...

    【讨论】:

    • 谢谢亚历克斯,我从org.apache.kafka 导入了课程,效果很好! @亚历克斯
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    • 1970-01-01
    • 1970-01-01
    • 2019-01-14
    • 2016-06-26
    • 1970-01-01
    • 2020-11-09
    相关资源
    最近更新 更多