我正在编写一个简单的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>
我错过了什么吗? 感谢
答案 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.KafkaConsumer
和java.util.Arrays
。