错误[由于kafka.common.LeaderNotAvailableException而导致的主题test-1的分区元数据]


应该是partition下面没数据

Kafka使用外部协调框架(默认Zookeeper)来维护配置。看来配置现在与Kafka日志数据不同步。在这种情况下,我会删除受影响的主题数据和相关的Zookeeper数据。

测试环境:

  1. 停止  Kafka-server 和 Zookeeper-server
  2. 删除这两个服务的数据目录,默认情况下它们是  /tmp/kafka-log 和  /tmp/zookeeper
  3. 启动  Kafka-server 和  Zookeeper-server 再
  4. 创建一个新主题

现在您可以再次使用该主题。

生产环境:

由于Kafka主题存储在不同的目录中,您应该删除特定的目录。您还应该/brokers/{broker_id}/topics/{broken_topic} 使用Zookeeper客户端从Zookeeper中删除  

http://stackoverflow.com/questions/23228222/running-into-leadernotavailableexception-when-using-kafka-0-8-1-with-zookeeper-3


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误Kafka生产者在发送消息时与Kafka broker通信失败所引起的。常见的原因包括Kafka broker不可用、网络故障、Kafka集群中的分区已满等。 以下是一些可能的解决方法: 1. 检查Kafka broker是否可用。您可以尝试使用Kafka命令行工具来连接Kafka broker并测试发送消息。例如,在命令行中运行以下命令: ``` kafka-console-producer.sh --broker-list localhost:9092 --topic test ``` 如果连接成功并且您可以发送消息,则Kafka broker应该是可用的。 2. 检查网络连接是否正常。您可以尝试使用ping命令或telnet命令来测试与Kafka broker的网络连接。例如,在命令行中运行以下命令: ``` ping kafka-broker-hostname ``` 或者: ``` telnet kafka-broker-hostname 9092 ``` 如果网络连接正常,则应该可以连接到Kafka broker。 3. 检查Kafka集群中的分区是否已满。如果分区已满,则不能再发送更多的消息。您可以使用Kafka命令行工具来查看集群中的分区状态。例如,在命令行中运行以下命令: ``` kafka-topics.sh --zookeeper zookeeper-hostname:2181 --describe --topic test ``` 如果分区已满,则您需要增加分区或者删除一些旧的消息以释放空间。 4. 检查Kafka生产者的配置是否正确。您需要确保生产者的配置与Kafka broker的配置相匹配。例如,您需要检查生产者的bootstrap.servers参数是否正确设置为Kafka broker的主机名和端口号。 如果以上方法都无法解决问题,请尝试查看Kafka生产者的日志以获取更多详细信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值