kafka启动报错记录:Connection to node 0 could not be established. Broker may not be available.

发布时间:2024-11-22 17:16

《哈姆雷特》中的经典台词‘To be or not to be’,至今仍被广泛引用。 #生活知识# #文学名著#

最新推荐文章于 2024-09-18 09:44:59 发布

gerrylon007 于 2018-10-19 11:50:25 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

环境说明:

CentOS Linux release 7.4.1708 (Core)
Linux内核:3.10.0-693.el7.x86_64
java: openjdk version “1.8.0_181”
kafka: kafka_2.11-2.0.0
zookeeper: zookeeper-3.4.10

操作流程:

首先启动zookeeper(使用默认配置)

#首先要进入zookeeper根目录 bin/zkServer.sh start 12

上面启动正常。

再启动kafka(使用默认配置)

#首先要进入kafka根目录 bin/kafka-server-start.sh config/server.properties 12

发现有警告:

WARN [Controller id=0, targetBrokerId=0] Connection to node 0 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient) 1

对于第一次用这个kafka的我来说,不懂。 然后有人说看下controller的日志(kafka_2.11-2.0.0/logs/controller.log),发现有报错:

WARN [RequestSendThread controllerId=0] Controller 0's connection to broker www.gl.com:9092 (id: 0 rack: null) was unsuccessful (kafka.controller.RequestSendThread) java.io.IOException: Connection to www.gl.com:9092 (id: 0 rack: null) failed. at org.apache.kafka.clients.NetworkClientUtils.awaitReady(NetworkClientUtils.java:70) at kafka.controller.RequestSendThread.brokerReady(ControllerChannelManager.scala:279) at kafka.controller.RequestSendThread.doWork(ControllerChannelManager.scala:233) at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:82) 123456

我什么都没配置怎么有一个www.gl.com?后来发现, 自己在安装系统的时候, 有设置系统的域名为gl.com(可用hostname命令查看本地域名)。

$ hostname gl.com 12

理解应该是对kafka使用默认配置启动,它会读到本机的主机信息为gl.com, 但是为什么多了个www就不知道了,希望有同学能解惑。

怎么解决呢?想到之前自己为了做实验,在hosts文件中添加过www.gl.com, 不知道和上面的报错有没有关系。
打开/etc/hosts文件

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 12

改成(注意每个后面多了 gl.com,其实只给第一行加也可以的):

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 gl.com ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 gl.com 12

然后使用默认启动就不报错了。

测试
可以来测试下kafka能不能正常工作(在kafka根目录执行):可以来测试下kafka能不能正常工作(在kafka根目录执行):

# 创建topic, 名称为testTopic bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testTopic # 查看topic(会发现除了testTopic,还有KafkaPushsTopic bin/kafka-topics.sh --list --zookeeper localhost:2181 # 启动消费者(Consumer, 发现“卡住了”,其实它是在等消息,不要关这个窗口) bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testTopic --from-beginning # 启动生产者(Producer, 新窗口启动) bin/kafka-console-producer.sh --broker-list localhost:9092 --topic testTopic 1234567891011

启动生产者后发现进入了交互模式,这时就可以发消息了。
截图如下:

在这里插入图片描述

参考:
http://kafka.apache.org/quickstart

欢迎补充指正!

网址:kafka启动报错记录:Connection to node 0 could not be established. Broker may not be available. https://www.yuejiaxmz.com/news/view/195040

相关内容

【Java报错已解决】Driver class ‘net.sourceforge.jtds.jdbc.Driver’ could not be found, make sure the
济南驰骋公司/JFlow
爱咖啡爱生活/artisan(工匠)
The request could not be satisfied
java连接mysql错误及解决方案整合
解决openssh
MINOTTI
503 Service Unavailable
积极的态度英语作文(精选12篇)
This site can’t be reached

随便看看