嗨,我是kafka的新手,我有一个简单的问题 .
我实现了一个kafka 生产环境 者和消费者zookeeper, 生产环境 者正在另一个服务器上运行(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 回答
您很可能必须将
kafka/config/server.properties
中的advertised.host.name
设置为可从外部路由的值 .