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

相关推荐
百年੭ ᐕ)੭*⁾⁾21 小时前
docker使用neo4j
docker·容器·neo4j
春风有信1 天前
【2026.05.01】Windows10安装Docker Desktop 4.71.0.0步骤及问题解决
运维·docker·容器
sthnyph1 天前
docker compose安装redis
redis·docker·容器
AIMath~1 天前
雪花算法+ZooKeeper解决方案+RPC是什么
分布式·zookeeper·云原生
W.A委员会1 天前
Docker基本使用流程
运维·docker·容器
gwjcloud1 天前
Kubernetes从入门到精通(进阶篇)03
云原生·容器·kubernetes
GuokLiu1 天前
260502-Clawith-Docker安装过程
运维·docker·容器·claw
日取其半万世不竭1 天前
PeerTube 部署指南:自建视频托管平台
云原生·eureka·音视频
JesseDev1 天前
Docker lnmp环境快速搭建开箱即用
运维·docker·容器