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

kafka consumer not receiving message over remote

嗨,我是 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,应该是端口没有被什么东西堵住吧

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