2016-03-22 10 views
0

Ich versuche, einen Java-Kafka-Consumer zu implementieren. Ich benutze Kafka Server Version 0.9. Es ist zu Testzwecken, also muss ich nur eine Nachricht lesen.Fehler beim Lesen einer Nachricht mit Java-basierten Kafka-Consumer

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; 
} 

Die zurückgegebenen Datensätze Objekt leer ist:

enter image description here

ich eine Kommandozeilen-Kafka Verbraucher auf meinem lokalen Rechner auszuführen, die auf den gleichen KAFKA_SERVER_HOST verbindet und tun Meldungen.

Antwort

1

Änderung der Abfragezeit auf

records = consumer.poll(0); 

für etwas größer als 0 ist, versuchen mit 100.

records = consumer.poll(100);