Ubuntu虚拟机部署Kafka 3.7.0创建Topic超时问题求助
Apache Kafka创建Topic超时问题排查(公网IP无法访问)
问题描述
在Ubuntu虚拟机部署Apache Kafka v3.7.0 + ZooKeeper时,使用公网IP创建Topic出现超时错误,使用localhost则正常。
执行的命令
export KAFKA_HOME=/home/kafkavm/youtubekafka/kafka $KAFKA_HOME/bin/zookeeper-server-start.sh $KAFKA_HOME/config/zookeeper.properties $KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/server.properties $KAFKA_HOME/bin/kafka-topics.sh --create \ --topic FirstTopic \ --bootstrap-server 20.244.40.80:9092 \ --partitions 1 \ --replication-factor 1 \ --config cleanup.policy=compact \ --config retention.ms=604800000 \ --config segment.bytes=1073741824
报错信息
Error: Error while executing topic command : Timed out waiting for a node assignment. Call: createTopics org.apache.kafka.common.errors.TimeoutException: Timed out waiting for a node assignment. Call: createTopics
server.properties监听器配置
listeners=PLAINTEXT://0.0.0.0:9092 advertised.listeners=PLAINTEXT://20.244.40.80:9092
解决步骤
检查Ubuntu本地防火墙
先确认9092端口是否对外开放:sudo ufw status若未开放,添加端口规则:
sudo ufw allow 9092/tcp临时关闭防火墙可快速验证是否是本地防火墙导致:
sudo ufw disable验证云服务商安全组规则
如果是云虚拟机,必须在云控制台的安全组中添加入站规则,允许TCP 9092端口的访问。测试阶段可将来源设为你的客户端IP,生产环境需严格限制来源范围。测试公网IP端口连通性
在执行创建Topic的机器上,用以下命令测试端口是否可达:nc -zv 20.244.40.80 9092 # 或telnet telnet 20.244.40.80 9092若连接失败,说明网络层面存在阻塞,优先排查防火墙和安全组。
确认Kafka与ZooKeeper运行状态
检查进程是否正常启动:jps正常情况下会看到
QuorumPeerMain(ZooKeeper)和Kafka进程。若进程异常,查看Kafka错误日志定位问题:cat $KAFKA_HOME/logs/server.log | grep ERROR调整Kafka超时配置(可选)
若网络连通但仍超时,修改server.properties增加超时时间:request.timeout.ms=30000 create.topic.timeout.ms=60000修改后重启Kafka:
$KAFKA_HOME/bin/kafka-server-stop.sh $KAFKA_HOME/bin/kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties
内容的提问来源于stack exchange,提问作者Ashish Dalmia
相关产品推荐
相关产品推荐

