今天在使用Kafka创建topic时,出现了以下一个错误
【Error】Error while executing topic command : Replication factor: 1 larger than available brokers: 0
提示我broker少于副本数,可是明明有三个broker并且只设置了2个replication
- 我们可以使用下列命令去zookeeper中查看启动了了几台broker
{zookeeper_home}/bin/zkCli.sh
使用ls /brokers/ids命令查看broker数
发现一个都没有启动,这时我去看看日志文件server.log,发现报了下列错误[2021-12-30 17:13:50,426] ERROR [KafkaServer id=1] Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer) org.apache.kafka.common.KafkaException: Socket server failed to bind to master:9092: 无法指定被请求的地址. at kafka.network.Acceptor.openServerSocket(SocketServer.scala:442) at kafka.network.Acceptor.
这是突然醒悟应该是listeners时出错了,有俩种配置方法(SocketServer.scala:332) at kafka.network.SocketServer$$anonfun$createAcceptorAndProcessors$1.apply(SocketServer.scala:149) at kafka.network.SocketServer$$anonfun$createAcceptorAndProcessors$1.apply(SocketServer.scala:145) at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59) at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48) at kafka.network.SocketServer.createAcceptorAndProcessors(SocketServer.scala:145) at kafka.network.SocketServer.startup(SocketServer.scala:94) at kafka.server.KafkaServer.startup(KafkaServer.scala:250) at kafka.server.KafkaServerStartable.startup(KafkaServerStartable.scala:38) at kafka.Kafka$.main(Kafka.scala:75) at kafka.Kafka.main(Kafka.scala) Caused by: java.net.BindException: 无法指定被请求的地址 at sun.nio.ch.Net.bind0(Native Method) at sun.nio.ch.Net.bind(Net.java:433) at sun.nio.ch.Net.bind(Net.java:425) at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:67) at kafka.network.Acceptor.openServerSocket(SocketServer.scala:438) ... 11 more
一:listeners=PLAINTEXT://:9092
二:listeners=PLAINTEXT://localhost:9092注意这边的local host应该是每一个节点的IP而不知一个,在复制后记得更改
补充:broker.id如果全部都是一样的数字也会出现上述问题



