spring cloud gateway k8s优雅启停

通过配置readiness探针和preStop hook,实现优雅启动和停止(滚动部署)

  1. k8s工作负载配置
python 复制代码
          readinessProbe:
            httpGet:
              path: /datetime
              port: 8080
              scheme: HTTP
            initialDelaySeconds: 30
            timeoutSeconds: 1
            periodSeconds: 30
            successThreshold: 1
            failureThreshold: 6
          lifecycle:
            preStop:
              exec:
                command:
                  - /bin/sh
                  - '-c'
                  - sleep 15s
  1. 网关改造
java 复制代码
@SpringBootApplication
public class GracefulShutdownApplication {

	public static void main(String[] args) {
		SpringApplication.run(GracefulShutdownApplication.class, args);
	}

	@Bean
	public GracefulShutdown gracefulShutdown() {
		return new GracefulShutdown();
	}
}
java 复制代码
public class GracefulShutdown implements ApplicationListener<ContextClosedEvent> {
    @Override
    public void onApplicationEvent(ContextClosedEvent contextClosedEvent) {
        HttpResources.disposeLoopsAndConnectionsLater().delaySubscription(Duration.ofSeconds(20)).block();
    }
}

经过测试发现,可以实现请求0失败

相关推荐
AC赳赳老秦19 分钟前
2026多智能体协同趋势:DeepSeek搭建多智能体工作流,实现复杂任务自动化
人工智能·python·microsoft·云原生·virtualenv·量子计算·deepseek
AI攻城狮1 小时前
OpenClaw 的 reserveTokensFloor 到底怎么影响 auto-compaction?
人工智能·云原生·aigc
Elastic 中国社区官方博客2 小时前
Elasticsearch Serverless 的无状态架构
大数据·数据库·elasticsearch·搜索引擎·云原生·架构·serverless
岁岁种桃花儿2 小时前
kubenetes从入门到上天系列第十二篇:Kubernetes的Deployment控制器
云原生·容器·kubernetes
向右看齐--2 小时前
Docker 进阶(一) Compose
docker·容器
我爱小疯喵喵2 小时前
1 Docker 完全操作指南
docker·容器·eureka
程序员Forlan3 小时前
初识云原生消息队列Pulsar
云原生
m_136873 小时前
OpenClaw v2026.3.12 离线源码构建与 Docker 部署完整教程
运维·docker·容器·openclaw
赴前尘3 小时前
docker buildx进行多架构镜像仓库迁移
docker·容器·架构
江畔何人初4 小时前
Gateway API 的核心组件与作用
运维·网络·云原生·kubernetes·gateway