【发布时间】:2021-05-25 19:50:22
【问题描述】:
我目前正在尝试将 liveness 和 readiness 端点添加到我的服务中,以便将其部署在 k8s 上。
我正在使用最新的 micronaut 版本 (2.5.4),并具有以下设置:
application.yml:
micronaut:
application:
name: sandbox
endpoints:
health:
enabled: true
sensitive: false
details-visible: ANONYMOUS
build.gradle:
plugins {
id("org.jetbrains.kotlin.jvm") version "1.4.32"
id("org.jetbrains.kotlin.kapt") version "1.4.32"
id("com.github.johnrengelman.shadow") version "7.0.0"
id("io.micronaut.application") version "1.5.0"
id("org.jetbrains.kotlin.plugin.allopen") version "1.4.32"
}
version = "0.1"
group = "com.example"
repositories {
mavenCentral()
}
micronaut {
runtime("netty")
testRuntime("junit5")
processing {
incremental(true)
annotations("com.example.*")
}
}
dependencies {
implementation("io.micronaut:micronaut-http-client")
implementation("io.micronaut:micronaut-management")
implementation("io.micronaut:micronaut-runtime")
implementation("io.micronaut.kotlin:micronaut-kotlin-runtime")
implementation("javax.annotation:javax.annotation-api")
implementation("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:${kotlinVersion}")
runtimeOnly("ch.qos.logback:logback-classic")
implementation("io.micronaut:micronaut-validation")
runtimeOnly("com.fasterxml.jackson.module:jackson-module-kotlin")
}
application {
mainClass.set("com.example.ApplicationKt")
}
java {
sourceCompatibility = JavaVersion.toVersion("11")
}
tasks {
compileKotlin {
kotlinOptions {
jvmTarget = "11"
}
}
compileTestKotlin {
kotlinOptions {
jvmTarget = "11"
}
}
}
每当我到达端点 localhost:8080/health/liveness 时,我得到的响应是:
{"name":"sandbox","status":"UNKNOWN"}
但是,当我打电话给localhost:8080/health/readiness 时,我得到了正确的回复:
{"name":"sandbox","status":"UP","details":{"compositeDiscoveryClient()":{"name":"sandbox","status":"UP"},"diskSpace":{"name":"sandbox","status":"UP","details":{"total":499963174912,"free":384382533632,"threshold":10485760}},"service":{"name":"sandbox","status":"UP"}}}
我似乎遗漏了一些东西,但我在 Micronaut 文档中找不到任何关于此的内容...
【问题讨论】:
-
您的上下文中是否有任何带有
@Liveness标记的bean? -
现在我没有,但是当我这样做时仍然有相同的结果,只是里面有一个未知的部分(我模仿了 Cassandra liveness 类)
-
我无法重现。如果您可以在示例应用程序中重现它,请在github.com/micronaut-projects/micronaut-core/issues 提出问题,我们可以进行调查。像 gist.github.com/jeffbrown/b6c881f92e142878e4b4aaee3be2fcc5 这样的
@Livenessbean 应该可以工作。感谢您的反馈! -
像魅力一样工作 - 我误解了
@Liveness的用法,并希望它也能像@Singleton一样工作。非常感谢! -
太棒了。我很高兴你解决了。如果我们能提供任何帮助,请告诉我们!
标签: micronaut kubernetes-health-check