kafka其中一个节点异常

三节点kafka集群,其中一个broker2节点启动正常,但是执行kafka命令超时,日志中一直报错误
[2023-06-13 17:12:44,730] INFO [Admin Manager on Broker 2]: Error processing create topic request CreatableTopic(name='ma1todp1_tm_8s_0
1', numPartitions=1, replicationFactor=2, assignments=[], configs=[]) (kafka.server.ZkAdminManager)
org.apache.kafka.common.errors.InvalidReplicationFactorException: Replication factor: 2 larger than available brokers: 0.
[2023-06-13 17:12:44,831] INFO [Admin Manager on Broker 2]: Error processing create topic request CreatableTopic(name='ma1todp1_tm_8s_0
1', numPartitions=1, replicationFactor=2, assignments=[], configs=[]) (kafka.server.ZkAdminManager)
org.apache.kafka.common.errors.InvalidReplicationFactorException: Replication factor: 2 larger than available brokers: 0.
这个topic是之前创建的,这个节点是其中一个副本

因为Kafka Broker 2节点认为当前可用的broker数量为0,你的副本无法访问到其他的broker节点。可能是由于网络问题、防火墙配置或其他原因导致的。
1、检查一下Kafka集群中其他节点的状态,确保它们都处于正常运行状态。

2、检查防火墙,确保Kafka Broker 2节点可以访问其他节点。

3、检查Kafka Broker 2节点的配置文件,确保它们正确地指向其他节点。

4、重启Kafka Broker 2节点,或者重新创建这个topic。

  • 这篇博客: kafka zk节点中的 1、Broker注册 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • Broker是分布式部署并且相互之间相互独立,但是需要有一个注册系统能够将整个集群中的Broker管理起来,此时就使用到了Zookeeper。在Zookeeper上会有一个专门用来进行Broker服务器列表记录的节点:

    /brokers/ids

    每个Broker在启动时,都会到Zookeeper上进行注册,即到/brokers/ids下创建属于自己的节点,如/brokers/ids/[0...N]。

    Kafka使用了全局唯一的数字来指代每个Broker服务器,不同的Broker必须使用不同的Broker ID进行注册,创建完节点后,每个Broker就会将自己的IP地址和端口信息记录到该节点中去。其中,Broker创建的节点类型是临时节点,一旦Broker宕机,则对应的临时节点也会被自动删除。