kafka消费者没有通过远程接收消息

时间:2016-07-28 06:19:26

标签: apache-kafka kafka-consumer-api

嗨,我是kafka的新手,我有一个简单的问题。

我实施了一个kafka制作人和消费者 zookeeper和producer正在另一台服务器上运行(192.168.10.233) 消费者正在另一台服务器上运行(192.168.10.234) 两者都是本地连接的

问题是 消费者与生产者联系但没有收听任何消息但是如果我将这个监听部分移动到同一个服务器(192.168.10.233),它就会收到消息

这是我的消费者代码

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

  }

我还从外面检查了192.168.10.233:9092,天气没有被任何东西阻挡。

1 个答案:

答案 0 :(得分:1)

您很可能必须将advertised.host.name中的kafka/config/server.properties设置为可从外部路由的值。