2016-07-28 62 views
0

Hallo ich bin neu zu kafka und ich habe eine kurze Frage. kafka consumer keine Nachricht über remote

ich implementiert einen kafka Erzeuger- und Verbraucher zookeeper und Produzenten in einem anderen Server ausgeführt wird (192.168.10.233) Consumer in einem anderen Server läuft (192.168.10.234) Beide sind mit lokal

Problem ist Verbraucher Setzen sie sich mit Produzenten verbunden, aber keine Nachricht hören, aber wenn ich dieses Zuhören Teil auf denselben Server (192.168.10.233) bewegen, er empfängt die Nachrichten

dies ist mein Code für Verbraucher

def listen(): Unit = { 
    val props = new Properties(); 
    props.put("bootstrap.servers", "192.168.10.233:9092"); 
    props.put("group.id", "groupId"); 
    props.put("enable.auto.commit", "true"); 
    props.put("auto.commit.interval.ms", "1000"); 
    props.put("session.timeout.ms", "30000"); 
    props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); 
    props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); 
    val consumer = new KafkaConsumer(props); 

    println("calling ---- but yet to receive the message") 

    consumer.subscribe(List("test")); 
    while (true) { 
     val records = consumer.poll(100); 
     for (record <- records) 
     println("offset = %d, key = %s, value = %s", record.offset(), record.key(), record.value()); 
    } 

    } 

Ich überprüfte auch 192.168.10.233:9092 von außen, Wetter der Hafen ist durch nichts blockiert.

+0

Ich glaube, dass es ein Problem des Offsets geben kann. Sie können versuchen, den Offset wie folgt zu setzen: props.put ("auto.offset.reset", "frühestes"); Wenn es funktioniert, können Sie diesen Wert tunen – NangSaigon

+0

Ja, ich habe Offset, aber immer noch kein Glück – Muhunthan

+0

welche Version von Apache Kafka verwenden Sie? 0.9 oder 0.10? Sie sollten dieselbe Version für Ihre Client-API haben. – NangSaigon

Antwort

1

Höchstwahrscheinlich müssen Sie advertised.host.name in Ihrem kafka/config/server.properties auf einen Wert einstellen, der von außen routingfähig ist.

+0

Ich habe den Kafka und den Tierpfleger hinzugefügt und neu gestartet, aber immer noch kein Glück. Tatsächlich wird es verbunden, aber es erhält keine Nachricht – Muhunthan

+0

Haben Sie eine Lösung für dieses Problem gefunden? Ich stehe vor dem gleichen Problem. Ich kann keine Nachrichten aus dem Kafka-Setup in meinem QA-Umfeld von meiner lokalen Entwicklungsumgebung abrufen. – Vikram