2017-06-23 2 views
0

Kafka-Verbraucherabfrage api gibt keine Datensätze mit niedriger Zeitüberschreitung zurück. Wenn ich den Timeout-Wert in der Umfrage erhöhen, dann kommen Datensätze. Ich bin nicht in der Lage, diese Logik zu verstehen. Bitte helfen Sie, nach dem Code:Kafka-Verbraucherumfrage wird bei niedriger Zeitüberschreitung nicht aufgezeichnet

public ConsumerRecords<String, Map<String, String>> subscribeToQueue(String topic, QueueListener q) { 
    Properties props = new Properties(); 
    props.put("bootstrap.servers", "localhost:9092"); 
    props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); 
    props.put("value.deserializer", "com.intuit.eventcollection.queue.KafkaJsonDeserializer"); 
    props.put("group.id", "test"); 
    props.put("enable.auto.commit", "true"); 
    props.put("auto.commit.interval.ms", "1000"); 
    props.put("session.timeout.ms", "30000"); 
    props.put("auto.offset.reset", "earliest"); 

    // Figure out where to start processing messages from 
    KafkaConsumer<String, Map<String, String>> kafkaConsumer = new KafkaConsumer<String, Map<String, String>>(
      props); 
    kafkaConsumer.subscribe(Arrays.asList(topic)); 
    ConsumerRecords<String, Map<String, String>> records = null; 
    // Start processing messages 
    try { 
     records = kafkaConsumer.poll(100); 

Antwort

0

Poll nichts zurück, wenn es keine neuen unverbrauchten Nachrichten in der Zeitperiode als Timeout angegeben veröffentlicht sind abzufragen (Timeout).

+0

Ich sehe die Timeout-Definition als: - Timeout - Die Zeit in Millisekunden verbrachte in der Umfrage warten, wenn Daten nicht verfügbar sind. Wenn 0, wird sofort mit allen Datensätzen zurückgegeben, die jetzt verfügbar sind. Muss nicht negativ sein. Während des Testens sende ich kontinuierlich die Daten im Thema und im gleichen Fluss versuche ich, die Nachricht mit Timeout als 100 zu konsumieren. Aber vom Thema wird nichts zurückgegeben. Aber wenn ich die Zeitüberschreitung auf 200 erhöhen. Dann beginnt Nachrichten aus dem Thema zu kommen. Wie Ihre Antwort "keine neuen unverbrauchten Nachrichten in der Zeit veröffentlicht", kann ich dies beim Testen nicht verstehen. – vidya

Verwandte Themen