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失败

相关推荐
阿里云云原生8 小时前
Nacos 3.2 Skill Registry 正式版发布,让 AI 能力在企业更安全、可控落地
云原生
阿里云云原生9 小时前
阿里云可观测 2026 年 3 月产品动态
云原生
阿里云云原生9 小时前
AI 开源库遭投毒事件的启示,和阿里云 AI 网关的回答
云原生
阿里云云原生9 小时前
202603 HiClaw Monthly · 脱壳月报第 1 期
云原生
MichealChen0105089 小时前
Influxdb-cluster使用docker部署
运维·docker·容器
斯普信云原生组11 小时前
Docker 开源软件应急处理方案及操作手册——安全漏洞与权限问题
运维·docker·容器
步步为营DotNet12 小时前
深度探索.NET Aspire在云原生应用性能与安全加固的创新实践
安全·云原生·.net
阿里云云原生12 小时前
企业数据如何被 AI Agent 调用?EventHouse 打造 AI-Ready 数据底座
云原生
斯普信云原生组12 小时前
Docker 开源软件应急处理方案及操作手册——容器运行异常处理
docker·容器·eureka
摆烂z13 小时前
对外访问网络限制*.aliyuncs.com开放也拉不下来和查看docker容器结构
运维·docker·容器