【问题标题】:Kafka consumer health check and recreateKafka消费者健康检查和重新创建
【发布时间】:2020-10-13 23:46:58
【问题描述】:

我们在一个项目中使用 Spring Kafka Client。最近我们注意到,如果由于 OutOfMemoryError 服务导致 Kafka 消费者死亡,服务继续正常运行并且没有新的消费者被创建。解决此问题的唯一方法是在日志中监控 OOM 并手动重新启动服务。 我们正在寻找一种使消费者娱乐自动化的方法,例如:

  1. 强制 Spring(以某种方式)检测死亡的消费者并在运行时创建新的消费者。
  2. 如果消费者线程中的 OOM 杀死整个服务,以便 AWS 自动缩放组可以创建服务的新实例。

感谢任何建议或想法。 谢谢!

【问题讨论】:

  • OOME 一般是不可恢复的,需要重启JVM。你需要解决OOM根本原因。

标签: spring-boot apache-kafka out-of-memory spring-kafka health-check


【解决方案1】:

我找到了与上述选项 2 相关的解决方案。 从 java 版本“1.8.0_92”开始,有一些 JVM 选项允许在 OOME 的情况下杀死整个 JVM:

 1. -XX:+ExitOnOutOfMemoryError  
 2. -XX:+CrashOnOutOfMemoryError

已添加,请参阅release notes

ExitOnOutOfMemoryError 启用此选项后,JVM 在第一次出现内存不足错误时退出。如果可以使用 您更喜欢重新启动 JVM 实例而不是处理 内存错误。

CrashOnOutOfMemoryError 如果启用此选项,当发生内存不足错误时,JVM 会崩溃并生成文本和 二进制崩溃文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-11
    • 2018-02-07
    • 1970-01-01
    • 1970-01-01
    • 2018-12-25
    • 1970-01-01
    • 2017-06-19
    • 1970-01-01
    相关资源
    最近更新 更多