我尝试实现java Kafka使用者。我使用Kafka服务器版本0.9。 它是出于测试目的,所以我所要做的就是阅读一条消息。
public static ConsumerRecords<String, String> readFromKafka() {
ConsumerRecords<String, String> records = null;
try {
Properties kafkaProps = new Properties();
kafkaProps.put("bootstrap.servers", "<KAFKA_SERVER_HOST>:9092");
kafkaProps.put("auto.commit.enable", "false");
kafkaProps.put("value.deserializer", StringDeserializer.class.getName());
kafkaProps.put("key.deserializer", StringDeserializer.class.getName());
kafkaProps.put("client.id", "testScore0");
kafkaProps.put("group.id", "testScore1");
kafkaProps.put("auto.offset.reset", "latest");
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(kafkaProps);
consumer.subscribe(Arrays.asList("my_topic"));
records = consumer.poll(0);
} catch (Exception e) {
logger.error("Can not read from kafka", e);
}
return records;
}
返回的记录对象为空:
我在本地计算机上执行命令行Kafka使用者,该计算机连接到同一个KAFKA_SERVER_HOST并获取消息。
答案 0 :(得分:1)
更改
上的投票时间records = consumer.poll(0);
对于大于0的东西,请尝试使用100。
records = consumer.poll(100);