Springboot基于健康检查服务预热

文章目录

用于服务启动之后,健康检查完成才会给服务流量

java 复制代码
/**
 * http://localhost:8080/actuator/health
 * 服务启动后,服务健康状态为DOWN,等待执行完成warmup()之后变为UP
 *
 * @author batman
 */
@Component
public class MyHealthIndicator implements HealthIndicator {
    public static final AtomicBoolean preheat = new AtomicBoolean(false);

    public static final AtomicBoolean preheatEnd = new AtomicBoolean(false);

    public static final AtomicInteger count = new AtomicInteger(0);

    @Override
    public Health health() {
        if (preheat.compareAndSet(false, true)) {
            warmup();
            preheatEnd.compareAndSet(false, true);
        }

        if (!preheatEnd.get()) {
            return Health.down().build();
        }

        return Health.up().build();
    }

    private void warmup() {

        try {
            Thread.sleep(5000L
            );
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

    }

}
相关推荐
渣哥2 分钟前
从代理到切面:Spring AOP 的本质与应用场景解析
javascript·后端·面试
文心快码BaiduComate19 分钟前
文心快码3.5S实测插件开发,Architect模式令人惊艳
前端·后端·架构
维诺菌19 分钟前
k8s java应用pod内存占用过高问题排查
java·jvm·云原生·容器·性能优化·kubernetes
5pace24 分钟前
【JavaWeb|第二篇】SpringBoot篇
java·spring boot·后端
HenryLin25 分钟前
Kronos核心概念解析
后端
oak隔壁找我25 分钟前
Spring AOP源码深度解析
java·后端
货拉拉技术28 分钟前
大规模 Kafka 消费集群调度方案
后端
oak隔壁找我28 分钟前
MyBatis Plus 源码深度解析
java·后端
oak隔壁找我28 分钟前
Druid 数据库连接池源码详细解析
java·数据库·后端