【发布时间】:2015-05-26 07:40:44
【问题描述】:
我正在运行 kafka 2.9.1-0.8.2.1。我在 kafka 主目录中的 libs/ 目录中包含了 jars。现在我正在尝试按照https://cwiki.apache.org/confluence/display/KAFKA/0.8.0+Producer+Example 此处给出的内容运行一个 java 生产者示例。现在producer.send 方法似乎正在接受这种论点Seq<KeyedMessage<String, String>>。在这个例子中,KeyedMessage 的对象没有被转换成任何东西。当我尝试做同样的事情时,我得到不兼容的类型编译器错误。
这是代码
import kafka.producer.KeyedMessage;
import kafka.producer.ProducerConfig;
import java.util.Properties;
import kafka.producer.Producer;
import scala.collection.Seq;
public class KakfaProducer {
public static void main(String [] args) {
Properties prop = new Properties();
prop.put("metadata.broker.list", "localhost:9092");
prop.put("serializer.class","kafka.serializer.StringEncoder");
//prop.put("partitioner.class", "example.producer.SimplePartitioner");
ProducerConfig producerConfig = new ProducerConfig(prop);
Producer<String,String> producer = new <String,String>Producer(producerConfig);
String topic = "test";
KeyedMessage<String,String> message = new <String,String>KeyedMessage(topic, "Hello Test message");
producer.send(message);
producer.close();
}
}
并且该注释代码给了我 class def not found 异常。我试着在网上看了很多,但没有帮助。
该 libs/ 目录中有两种 jar。一个是 kafka-client,另一个是 kafka 和版本号。我是否包括错误的罐子?我需要与哪一个合作?
【问题讨论】:
标签: java apache-kafka