Amazon ec2 AWS崩溃时的卡夫卡群集

Amazon ec2 AWS崩溃时的卡夫卡群集,amazon-ec2,apache-kafka,Amazon Ec2,Apache Kafka,在AWS EC2实例上运行的kafka群集经常出现问题 说明 卡夫卡群集版本0.10.1.0 3.经纪人集群 主题每个代理有6个分区 实例类型为m4.xlarge 症状 以下事件将以随机间隔在随机代理上发生 从日志中,我可以收集到以下信息: 在随机代理上缩减集群内复制 (我想可能是暂时的网络故障,但无法提供证据) 系统在02:27:20时开始显示几乎没有活动(注意,这与负载无关,因为它发生在非常安静的时间) 从那个时起,这个kafka代理不会处理IMO期望的消息,因为它退出了集群复制 现在

在AWS EC2实例上运行的kafka群集经常出现问题

说明

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

以下事件将以随机间隔在随机代理上发生

从日志中,我可以收集到以下信息:

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

  • 系统在02:27:20时开始显示几乎没有活动(注意,这与负载无关,因为它发生在非常安静的时间)

  • 从那个时起,这个kafka代理不会处理IMO期望的消息,因为它退出了集群复制

  • 现在真正的问题出现在CLOSE_WAIT中的连接数上 不断增加,直到达到系统/进程的配置ulimit,最终导致卡夫卡进程崩溃

  • 现在,我一直在改变限制,看看卡夫卡最终是否会在崩溃前再次加入ISR,但即使限制非常高,卡夫卡似乎仍处于一种奇怪的状态,永远无法恢复

    请注意,在出现故障的代理独立运行到崩溃之间,卡夫卡正在监听并制作卡夫卡

    对于这一次崩溃,我可以从生产者那里看到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.
    

    配置是默认的,使用也是非常标准的,我想知道我是否遗漏了什么

    我设置了一个脚本,用于检查卡夫卡文件描述符的数量,并在服务异常高时重新启动服务,这在目前是可行的,但当服务崩溃时,我仍然会丢失消息


    如果您能帮我弄清这一点,我们将不胜感激。

    我使用的版本中出现了死锁

    升级解决了这个问题

    有关问题,请参见票证: