AWS崩溃时的Kafka集群

时间:2017-07-24 02:32:14

标签: amazon-ec2 apache-kafka

我在AWS EC2实例上运行的kafka群集一直存在问题。

描述

  • Kafka群集版本 0.10.1.0
  • 3个经纪人群集
  • 主题每个代理有6个分区
  • 实例类型为 m4.xlarge

症状

以下将在随机经纪人的随机间隔发生

这里的日志是我可以收集的信息:

  1. 缩小随机代理上的群集内复制 (我想这可能是暂时的网络故障但无法提供证据)

  2. 系统开始显示接近没有活动@ 02:27:20 (请注意,它在非常安静的时间没有加载相关)

    < / LI>

    enter image description here

    1. 从那里开始,这个kafka经纪人不会处理消息,因为它从集群复制中退出后是预期的IMO。

    2. 现在,真正的问题显示为 CLOSE_WAIT 中的连接数 不断增加,直到达到系统/流程的配置ulimit,最终导致kafka流程崩溃。

    3. 现在,我一直在改变限制,看看卡夫卡最终会在崩溃之前再次加入ISR,但即使有一个非常高的限制,卡夫卡似乎陷入了一种奇怪的状态并且永远不会恢复。

      请注意,在故障经纪人独立的时间和崩溃的时间之间,kafka正在监听和kafka制作人。

      对于这次单一崩溃,我可以从生产者那里看到320这样的错误:

      java.util.concurrent.ExecutionException: org.springframework.kafka.core.KafkaProducerException: Failed to send; nested exception is org.apache.kafka.common.errors.NotLeaderForPartitionException: This server is not the leader for that topic-partition.
      

      配置是默认配置,使用非常标准,我想知道我是否错过了什么。

      我设置了一个脚本,用于检查kafka文件描述符的数量,并在异常高时重新启动服务,这就是现在的技巧,但是当它崩溃时我仍然会丢失消息。

      任何帮助深究这一点都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

原来我使用的版本出现了僵局。

升级修复了问题。

查看有关此问题的故障单:

https://issues.apache.org/jira/browse/KAFKA-5721