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

相关推荐
.柒宇.9 小时前
AI掘金头条项目-K8s部署实战教程
python·云原生·容器·kubernetes·fastapi
AI攻城狮9 小时前
DeepSeek V4:LLM 世界的"好又多"超市
云原生
AI精钢10 小时前
AI Agent 从上线到删库跑路始末
网络·人工智能·云原生·aigc
AI攻城狮11 小时前
RAG 的 Chunking 有什么好方案?从原理到实战选型
云原生
AI攻城狮14 小时前
如何提高 RAG 的检索质量?这才是真正的瓶颈所在
云原生
AI攻城狮17 小时前
DeepSeek KV Cache 入门解读:98% 命中率背后的工程逻辑
云原生
weixin_3776348420 小时前
【MinerU】 Docker Compose 使用
docker·容器·mineru
菜鸟的日志20 小时前
【软件架构风格】面向服务架构(SOA)及其微服务演进
微服务·云原生·架构
PH = 721 小时前
K8S集群的搭建
云原生·容器·kubernetes
CS创新实验室21 小时前
CS实验室行业报告:云计算与云原生行业分析报告
云原生·云计算