当前位置: 首页 > news >正文

宜昌市做网站的公司广告设计专业考研

宜昌市做网站的公司,广告设计专业考研,培训机构排名,深圳软件定制一、为什么要实现优雅停机 不停服更新? 提升用户体验:避免服务中断,减少用户困扰; 增强系统稳定性:确保服务在停止前处理完现有请求,减少错误,避免数据异常; 支持持续交付&#x…

一、为什么要实现优雅停机 + 不停服更新?

  • 提升用户体验:避免服务中断,减少用户困扰;

  • 增强系统稳定性:确保服务在停止前处理完现有请求,减少错误,避免数据异常;

  • 支持持续交付:实现频繁部署而不影响业务连续性;

  • 降低成本:减少因服务中断带来的经济损失和维护成本;


二、如何实现优雅停机?

1、项目自身的配置:

其实,在Spring Boot 2.3 及以上版本中,已经内置了对优雅停机的支持,但是前提是确保我们服务中,已经已经正确引入了actuator依赖:

1

2

3

4

<dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-actuator</artifactId>

</dependency>

我们可以在 application.yml 或 application.properties 中进行如下配置:

1

2

3

4

5

6

server:

  shutdown: graceful

spring:

  lifecycle:

    timeout-per-shutdown-phase: 30s

2、K8s中对的配置:

在 Kubernetes 中,我们需要确保 Pod 在停止之前有足够的时间来完成优雅停机,可对terminationGracePeriodSeconds参数进行如下配置:

1

2

3

4

5

6

7

8

9

10

11

apiVersion: v1

kind: Pod

metadata:

  name: example-pod

spec:

  terminationGracePeriodSeconds: 60  # 设置为合适的值,确保应用有足够的时间完成优雅停机

  containers:

  - name: example-container

    image: your-spring-boot-app:latest

    ports:

    - containerPort: 8080

3、对于没有内置优雅停机的程序,我们可以通过自定义优雅停机的端口,配合k8s的preStop钩子,完成优雅停机:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

apiVersion: v1

kind: Pod

metadata:

  name: example-pod

spec:

  terminationGracePeriodSeconds: 60

  containers:

  - name: example-container

    image: your-spring-boot-app:latest

    ports:

    - containerPort: 8080

    lifecycle:

      preStop:

        exec:

          # command: ["sh", "-c", "sleep 10"]  # 预处理操作,例如等待 10 秒

          command: ["curl", "-XPOST", "127.0.0.1:50000/actuator/shutdown"]  # 调用优雅停机接口

4、进行了以上配置,我们的程序就可以实现优雅停机的效果了:

1731656063818307.png

调试期间,重点观察:pod是否是在 Graceful shutdown complete 成功打印后,才被删除的?

但是,光实现优雅停机,服务的高可用性还是没有得到完全保障的,我们好需要实现,服务的不停服更新才可以!


三、如何实现不停服更新?

不停服更新的关键点就在于:要实现 滚动更新 + 就绪/存活探针 的配置!

1、如何配置滚动更新:

对于滚动更新策略,正常时候我们使用k8s管理面板的页面操作会更方便一点,因为市面上,所有的面板都会提供这一块的配置:

1

2

3

4

5

6

7

8

9

10

11

apiVersion: apps/v1

kind: Deployment

metadata:

  name: my-spring-boot-app

spec:

  replicas: 3

  strategy:

    type: RollingUpdate

    rollingUpdate:

      maxSurge: 1   # 也可以使用 25% 表示

      maxUnavailable: 0

  • maxSurge: "25%"  :在更新过程中最多可以创建当前副本数的 25% 的额外 Pod,从而加快更新速度。

  • maxUnavailable: 0  :确保在更新过程中没有 Pod 不可用,保持服务高可用性。

2、如何配置就绪/存活探针:

配置就绪/存活探针的关键就是,我们的系统有提供对应的探针,巧了,如果我们的 springboot 项目已经引入了actuator依赖,就是已经待了对应的探针的;

但是记得要把这两个探针加入登录认证的白名单哦!

之后,在k8s上配置时候,正常时候我们也会选择在k8s管理面板上进行配置:

http://www.dtcms.com/a/587162.html

相关文章:

  • 网站建设规划书主题如何做电商带货
  • 东莞设计网站建设用什么技术做网站
  • SysTick异常
  • 网站建设怎么管理业务员html音乐网页设计模板
  • 做网站多少钱西宁君博领先网站布局有哪些
  • 创建网站有什么用北京专业网站改版
  • MySQL基础操作案例设计
  • ajax网站开发技术阿里云数据库主机wordpress
  • 网站优化成本网站建设的毕业设计
  • 2025年11月8日 AI快讯
  • 义乌网站建设公司开发一个小程序大约需要多少钱
  • 网站建设国内公司wordpress调取数据库
  • 审稿人意见如何修改?
  • 网站积分商城该怎么建立老域名对做网站的
  • 网站新闻公告表怎么做雅安网站开发
  • wordpress建教学网站网站推广优化技巧大全
  • 我自己对三种 IO 多路复用的理解
  • 网站建设太仓做体育直播网站
  • 用ps做网站尺寸注册个人网站的方法
  • 网站属性设置大型网站建设哪个好
  • 南京维露斯网站建设如何在淘宝网上卖东西
  • 山亭网站建设下载ppt模板免费
  • 网站开发公司凭证市场调研的方法
  • 找人做网站维护多少钱怎样做28网站代理
  • 智能医疗大模型在医生培训中的应用案例
  • 800多块做网站互联网营销优势
  • 做煤层气的网站重庆专业网站推广时间
  • 公司网站如何建立滨州建设局网站
  • C++笔记——STL map
  • 电商运营是销售吗威海seo网站推广