使用Apache Kakfa的KafkaConsumer api键入错误

时间:2016-11-10 11:25:33

标签: java apache-kafka

我正在编写一个简单的Kafka Consumer类,如下所示

public class MySimpleKafkaConsumer {
public static void main(String[] args) {
    Properties props = new Properties();
    props.put("bootstrap.servers", "localhost:9092");
    props.put("group.id", "mygroup");
    props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
    props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");

    KafkaConsumer<String, String> consumer = new KafkaConsumer<String, String>(props);
    consumer.subscribe(Arrays.asList("storm-test-topic"));

虽然我在下面的行中出现错误

  

该方法中的subscribe(String ...)方法   KafkaConsumer不适用于参数   (列表)

consumer.subscribe(Arrays.asList("storm-test-topic"));

根据api文档,这似乎是正确的。 这是依赖版本

    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka-clients</artifactId>
    <version>0.9.0.1</version>

我错过了什么吗? 感谢

3 个答案:

答案 0 :(得分:1)

该方法需要String...参数。这与List<String>不兼容,仅与String[]不兼容。它是Java处理var-arg函数参数的一个特性。

只需用一个字符串调用它,即String [1]

consumer.subscribe("storm-test-topic");

答案 1 :(得分:0)

按以下方式调用它解决了错误:

consumer.subscribe("storm-test-topic");

答案 2 :(得分:0)

KafkaConsumer和数组的引用应分别指向org.apache.kafka.clients.consumer.KafkaConsumerjava.util.Arrays