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

相关推荐
Alex艾力的IT数字空间7 小时前
在 Kylin(麒麟)操作系统上搭建 Docker 环境
大数据·运维·缓存·docker·容器·负载均衡·kylin
SPC的存折14 小时前
2、Docker命令与镜像、容器管理
linux·运维·服务器·docker·容器·eureka
Hachi被抢先注册了15 小时前
Docker学习记录
java·云原生·eureka
阿里云云原生15 小时前
安全养虾实践:当 AI 管家遇到线上预警,我的提效破局之路
云原生
香蕉鼠片16 小时前
Docker
运维·docker·容器
阿里云云原生17 小时前
相约 GenAICon 北京站:聊聊从环境工程出发,如何“简化”多源实时上下文?
云原生
Cat_Rocky18 小时前
docker简单学习
学习·docker·容器
数字化顾问19 小时前
(88页PPT)DG1092D1S4培训课件EASGERP总体架构基础(附下载方式)
微服务·云原生·架构
x10n919 小时前
基于提示词驱动的Function Call实现K8s Pod智能诊断
ai·云原生·容器·kubernetes
阿里云云原生19 小时前
当运维遇见本体论:Umodel 打造 IT 世界的统一认知地图
云原生