You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Akka Management自定义Liveness存活检测配置不生效问题求助

问题排查与解决方案

以下是遗漏的配置和错误点,逐一修正即可:

  • 1. 缺失健康检查启用配置
    Akka默认不会自动启用自定义存活检查,需要额外添加启用配置:
    akka {
      management {
        # 首先要确保akka management的http端点启用
        http {
          enabled = true
          hostname = "0.0.0.0"
          port = 8558
        }
        health-checks {
          # 启用存活检查
          liveness.enabled = true
          liveness-checks {
            cluster-liveness = "ie.fd.cpoi.acl.liveness.LivenessCheck"
          }
        }
      }
    }
    
  • 2. 接口实现与依赖问题
    当前实现的是Scala函数类型,需要确认两点:
    1. 已引入对应Scala版本的akka-management-health-checks依赖,未引入的话Akka不会识别自定义检查类;
    2. 若没有使用Akka依赖注入框架,健康检查类需要提供无参构造,或者显式声明ActorSystem可注入,否则Akka无法实例化检查类。修正后的代码示例:
    package ie.fd.cpoi.acl.liveness
    
    import akka.actor.ActorSystem
    import org.slf4j.{Logger, LoggerFactory}
    import scala.concurrent.Future
    
    // 无参构造示例,在类内部获取ActorSystem,或者用Akka DI注入
    class LivenessCheck() extends (() => Future[Boolean]) {
      private val system = ActorSystem("liveness-check-system")
      val logger: Logger = LoggerFactory.getLogger("LivenessCheck")
    
      override def apply(): Future[Boolean] = {
        logger.info("此处调用依赖系统接口,若依赖异常则需要重启应用")
        Future.successful(false)
      }
    }
    
  • 3. 配置加载校验
    确认配置放在application.conf文件的根层级,没有被其他配置覆盖,应用启动时加载的是正确的配置文件。

修正后重启应用,日志中会打印加载的存活检查包含自定义的类。

内容的提问来源于stack exchange,提问作者Karan Khanna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 01:24:01