我在CentOS环境中设置了Apache Kafka 0.8.2.1,创建了一个主题,并通过命令行生产者/消费者发送/接收了一些虚拟消息。
正如您在截图中看到的那样,效果很好。不,我正在编写一个自定义生产者来将我的消息从Java发送到主题。
package de.jofre.kafka;
import java.util.Properties;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.common.serialization.StringSerializer;
public class TestProducer {
public static void main(String[] args) {
Properties props = new Properties();
props.put("bootstrap.servers", "192.168.145.130:9092");
props.put("key.serializer", StringSerializer.class.getName());
props.put("value.serializer", StringSerializer.class.getName());
KafkaProducer<String, String> prod = new KafkaProducer<String, String>(props);
ProducerRecord<String, String> record = new ProducerRecord<String, String>("test", "Kafka is great");
prod.send(record);
prod.close();
}
}
调用显示的main不会导致Kafka主题上的消息,也不会打印任何错误消息。
是否有人知道为什么邮件不会出现在我的主题中?
答案 0 :(得分:1)
感谢morganw09dev,我找到了答案。我使用依赖项 org.apache.kafka kafka_2.11 0.8.2.1 和 org.apache.kafka kafka-clients 0.8.2.1 进行了测试。他们没有工作。
实际工作的依赖是 org.apache.kafka kafka_2.10 0.8.2.1 。我认为这是一个错误,因为我下载并运行了kafka_2.11二进制文件。