卡夫卡节点故障后,卡夫卡生产者/消费者重新连接

时间:2019-03-15 11:12:57

标签: java spring-boot apache-kafka

我有一些kafka使用者和生产者(春季启动),当它们连接的Kafka节点发生故障(例如,故障)时,他们会记录以下内容:

  

2019-03-15 11:02:53.278警告1 --- [tainer#1-23-C-1]   org.apache.kafka.clients.NetworkClient:[消费者   clientId = consumer-29,groupId = OperationsConsumer]连接到错误   节点kafka-0.kafka-headless.test.svc.cluster.local:9092(id:1001   机架:空)

     

java.io.IOException:无法解析地址:   kafka-0.kafka-headless.test.svc.cluster.local:9092

但是,即使我将节点明确设置为bootstrap.servers属性,它们也不会尝试重新连接到有效的kafka节点。

在他们连接的kafka节点出现故障之后,如何使我的使用者重新连接到有效的kafka节点?

2 个答案:

答案 0 :(得分:0)

检查您的重新连接属性:

  • reconnect.backoff.ms
  • reconnect.backoff.max.ms

…如Kafka docs

中所述

在评估重新连接成功之前,您让它们过去了吗?

bootstrap.servers中,除了向下的节点外,至少还需要另一个节点,以便有机会建立新的连接。还请检查所有节点是否都通过相同的Zookeeper进行通信,以及Kafka设置本身是否处于良好状态。

答案 1 :(得分:0)

基于主机名,看起来您正在使用 Kubernetes

这在Kubernetes中非常复杂。

第一次尝试telnet hostname 9092,如果它有效,则是Kafka配置问题,否则是kubernetes安装问题