Java 卡夫卡制作人未发送记录

Java 卡夫卡制作人未发送记录,java,apache-kafka,kafka-producer-api,Java,Apache Kafka,Kafka Producer Api,我对卡夫卡完全陌生,我在使用卡夫卡制作人时遇到了一些麻烦。 生成器的send方法正好阻塞1分钟,然后应用程序将毫无例外地继续进行。这显然是超时,但不会引发异常 我在日志中也看不到任何东西 必须正确设置服务器。如果我使用bin/kafka控制台消费者和生产者应用程序,我可以正确发送和接收消息。此外,代码接缝在一定程度上也可以发挥作用。 如果我想写一个还不存在的主题,我可以在/tmp/kafka logs文件夹中看到新条目,也可以在KafkaServer的控制台输出中看到。 以下是我使用的代码:

我对卡夫卡完全陌生,我在使用卡夫卡制作人时遇到了一些麻烦。 生成器的send方法正好阻塞1分钟,然后应用程序将毫无例外地继续进行。这显然是超时,但不会引发异常

我在日志中也看不到任何东西

必须正确设置服务器。如果我使用bin/kafka控制台消费者和生产者应用程序,我可以正确发送和接收消息。此外,代码接缝在一定程度上也可以发挥作用。 如果我想写一个还不存在的主题,我可以在/tmp/kafka logs文件夹中看到新条目,也可以在KafkaServer的控制台输出中看到。 以下是我使用的代码:

    Properties props = ResourceUtils.loadProperties("kafka.properties");
    Producer<String, String> producer = new KafkaProducer<>(props);

    for (String line : lines)
    {
        producer.send(new ProducerRecord<>("topic", Id, line));
        producer.flush();
    }
    producer.close();
所以,producer.send blocks持续1分钟,然后继续。最后,卡夫卡没有存储任何内容,而是创建了新主题。
谢谢你的帮助

尝试将
引导程序.服务器设置为
127.0.0.1:9092

\1:我在这里没有看到任何日志消息,那么你怎么知道是
send()
需要一分钟呢?\2:当你在
Future
上调用
get()
时会发生什么
返回?然后我看到以下异常:org.apache.kafka.common.errors.TimeoutException:在60000毫秒后更新元数据失败。我也尝试过,当我调用产品的partitions for(“topic”)方法时出现此异常。尝试在写入主题之前手动创建主题。否,错误仍然发生。。。这很奇怪。linux上的所有东西都在本地主机上运行。对于测试用例,我也在windows上设置了所有内容。它在那里工作。。。可能是权限问题吗?如果您有新问题,请单击按钮提问。如果此问题有助于提供上下文,请包含指向此问题的链接-
bootstrap.servers=localhost:9092
key.serializer=org.apache.kafka.common.serialization.StringSerializer
value.serializer=org.apache.kafka.common.serialization.StringSerializer
acks=all
retries=0
batch.size=16384
linger.ms=1
buffer.memory=33554432