返回到文章

采纳

编辑于

kafka.common.FailedToSendMessageException: Failed to send messages after 3 tries.【解决】

kafka

使用应用程序调用kafka集群时,出现kafka.common.FailedToSendMessageException: Failed to send messages after 1 tries.

错误如下
[2016-04-13 15:45:14,347] ERROR Failed to send requests for topics test with correlation ids in [0,12] (kafka.producer.async.DefaultEventHandler:97)
Exception in thread "main" kafka.common.FailedToSendMessageException: Failed to send messages after 3 tries.
    at kafka.producer.async.DefaultEventHandler.handle(DefaultEventHandler.scala:91)
    at kafka.producer.Producer.send(Producer.scala:77)
    at kafka.javaapi.producer.Producer.send(Producer.scala:33)
    at com.sxj.kfk.ProducerSample.main(ProducerSample.java:34)

排查步骤

  1. 首先确认集群使用命令的方式发送和消费正常。

  2. 缺少配置监听地址,在config/server.properties中设置listeners地址,如:

    listeners=PLAINTEXT://10.211.55.5:9092
    

    (注意:尽量用ip)

  3. 确认应用程序所在机器连接到kafka集群是畅通的。(例如:telnet 10.211.55.5 9092)

  4. 应用程序调用kafka集群的端口写错了,不是2181,是9092。(有的人分不清broker和zookeeper的端口号)

  5. 配置修改后,没有重启kafka集群。

只要按照以上步骤,必能解决问题。