新搭建一套kafka集群,配置用的老的一样的配置,应该很快能够搞定,结果搞了一天,问题如下,
搭建完成后使用如下命令做生产者测试产生新数据:
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
123
稍等下出现如下报错:
[2020-09-10 19:19:12,798] ERROR Error when sending message to topic test with key: null, value: 0 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.

同时消费者也没收到数据,如下命令:
#消费消息
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning

搜索了一阵,给的方案这样的:

listeners=PLAINTEXT://HostIP:9092
advertised.listeners=PLAINTEXT://HostIP:9092
port=9092

然鹅,重启后问题依旧未解决,再搜索,说是生产消息需要用broker所在的机器IP ,即生产消息的时候需要将下边的命令需要修改
#生产消息
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
改为 HostIP为执行命令机器IP:
bin/kafka-console-producer.sh --broker-list HostIP:9092 --topic test
重试了下果真可以,问题解决,真是坑坑。。

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐