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

相关推荐
阿里云云原生37 分钟前
当 AI Agent 接管手机:移动端如何进行观测
云原生·agent
阿里云云原生1 小时前
AI 原生应用开源开发者沙龙·深圳站精彩回顾 & PPT下载
云原生
阿里云云原生1 小时前
灵感启发:日产文章 100 篇,打造“实时热点洞察”引擎
云原生
1candobetter7 小时前
Docker Compose Build 与 Up 的区别:什么时候必须重建镜像
docker·容器·eureka
~莫子8 小时前
Haproxy七层负载详解+实验详细代码
云原生
阿里云云原生8 小时前
OpenTelemetry + 云监控 2.0:打造你的云原生全栈可观测
云原生
阿里云云原生10 小时前
Kubernetes 官方再出公告,强调立即迁移 Ingress NGINX
kubernetes
阿狸猿10 小时前
云原生数据库
云原生·软考
至此流年莫相忘10 小时前
Kubernetes实战篇之配置与存储
云原生·容器·kubernetes
阿里云云原生11 小时前
OpenClaw 在严肃场景下的实践:迁移 Ingress NGINX
云原生