我在AWS EC2实例上运行的kafka群集一直存在问题。
描述
症状
以下将在随机经纪人的随机间隔发生
这里的日志是我可以收集的信息:
缩小随机代理上的群集内复制 (我想这可能是暂时的网络故障但无法提供证据)
系统开始显示接近没有活动@ 02:27:20 (请注意,它在非常安静的时间没有加载相关)
< / LI> 醇>从那里开始,这个kafka经纪人不会处理消息,因为它从集群复制中退出后是预期的IMO。
现在,真正的问题显示为 CLOSE_WAIT 中的连接数 不断增加,直到达到系统/流程的配置ulimit,最终导致kafka流程崩溃。
现在,我一直在改变限制,看看卡夫卡最终会在崩溃之前再次加入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文件描述符的数量,并在异常高时重新启动服务,这就是现在的技巧,但是当它崩溃时我仍然会丢失消息。
任何帮助深究这一点都将受到赞赏。
答案 0 :(得分:0)