Spring Boot 2.3提供K8s活性和就绪性探针,将成为核心概念积极拥抱K8s! – spring.io

Spring Boot 2.3将包括对Kubernetes liveness&readiness Probe的本地支持,扩展了2.2的 “运行状况组”支持
,允许开发人员选择运行状况指标的子集,并将其分组为单个相关的运行状况。

Kubernetes的活性Liveness和就绪性probes探针

在Kubernetes中, 活性和就绪性Kubernetes概念
代表了应用程序状态的各个方面。

应用程序的活动状态指示内部状态是否有效。如果活性Liveness被破坏,则意味着应用程序本身处于故障状态,无法恢复。在这种情况下,最好的做法是重新启动应用程序实例。例如,如果本地缓存已损坏且无法修复,则依赖本地缓存的应用程序应失败其活动状态。

就绪状态告知应用程序是否已准备好接受客户端请求。如果就绪状态尚未就绪,则Kubernetes不应将流量路由到该实例。如果应用程序太忙于处理任务队列,则它可以将自己声明为忙碌,直到可以再次管理其负载为止。

活性和就绪性将成为Spring Boot的核心概念

这些活动性和就绪性概念不仅适用于Kubernetes,而且无论部署平台如何,它们通常都非常有用。我们将介绍LivenessState和ReadinessState,它们是这些概念的不可变表示形式。您可以随时从中获取它们ApplicationAvailabilityProvider:

<font><i>// Available as a component in the application context</i></font><font>
ApplicationAvailabilityProvider availabilityProvider;

LivenessState livenessState = availabilityProvider.getLivenessState();
ReadinessState readinessState = availabilityProvider.getReadinessState()
</font>

您需要进行检查以了解应用程序状态不完整的仅轮询模型。只有应用程序知道其生命周期(启动,关闭),或者可以提供有关运行时错误的上下文(在处理任务时以中断状态结束)。Spring Boot应用程序上下文在应用程序的生命周期中本地发布这些事件;您的应用程序代码也应该对此有所帮助。

这就是为什么我们选择使用Spring Application Event模型来更改可用性状态并监听更新的原因:

<font><i>/**
 * Component that checks that the local cache is in a valid state.
 */</i></font><font>
@Component
<b>public</b> <b>class</b> LocalCacheVerifier {

    <b>private</b> <b>final</b> ApplicationEventPublisher eventPublisher;

    <b>public</b> LocalCacheVerifier(ApplicationEventPublisher eventPublisher) {
        <b>this</b>.eventPublisher = eventPublisher;
    }

    <b>public</b> <b>void</b> checkLocalCache() {
        <b>try</b> {
            </font><font><i>//...</i></font><font>
        }
        <b>catch</b> (CacheCompletelyBroken ex) {
            <b>this</b>.eventPublisher.publishEvent(LivenessStateChangedEvent.broken(ex));
        }
    }

}
</font>

组件还可以通过@EventListener(或通过实现ApplicationListener)侦听那些事件。请查阅 参考文档以获取更多信息

该支持直接随spring-boot模块一起提供,并且为所有Spring Boot应用程序激活。这使它可用于所有类型的应用程序(Web,批处理等),并允许您实现不一定与HTTP绑定的探针。

使用Spring Boot Actuator公开Kubernetes探针

您可能会对一个非常常见的用例感兴趣:在Kubernetes上部署Web应用程序并配置HTTP探针。将Spring Boot Actuator依赖项添加到您的应用程序是唯一的要求!Actuator将使用运行状况支持来配置“ 活动性”和“就绪” HTTP探针
.端点:"/actuator/health";"/actuator/health/liveness"和"/actuator/health/readiness"。

详细点击标题进入

原文 

https://www.jdon.com/53933

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » Spring Boot 2.3提供K8s活性和就绪性探针,将成为核心概念积极拥抱K8s! – spring.io

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址