springboot项目 + rancher管理 实现用户无感知部署

news/2024/11/29 9:36:58/

springboot项目 + rancher管理 实现用户无感知部署

rancher/yaml设置

在rancher找到对应服务的config,将Minimum Ready设置为合适的时间(单位为秒)

在这里插入图片描述

或者以yaml文件修改配置,但是在yaml配置中是叫minReadySeconds

spec: # 定义deployment资源需要的参数属性,诸如是否在容器失败时重新启动容器的属性minReadySeconds: 60 # 滚动升级时60s后认为该pod就绪,默认0s,如果没有设置该值,Kubernetes会假设该容器启动起来后就提供服务了,在某些极端情况下可能会造成服务不正常运行progressDeadlineSeconds: 600 # 部署升级的最大时间,如果没完成将变成超时状态replicas: 1 # 定义副本数量revisionHistoryLimit: 10 # 定义保留几个历史版本记录

此时新编译打包的镜像启动后,旧版本的镜像将会在60s后才被kill掉,避免了新镜像刚启动未注册到服务发现配置就把旧镜像kill掉后导致的空窗期。

但是这样又会引发一个新问题:旧镜像在60s后被kill掉会不会导致一部分负载到此镜像的流量异常(此时相当于两个节点在服务发现上)

由此可以引申出服务优雅下线

优雅下线

简单的说,就是向应用进程发出停止指令之后,能保证正在执行的业务操作不受影响,直到操作运行完毕之后再停止服务。应用程序接收到停止指令之后,会进行如下操作:

  • 1.停止接收新的访问请求
  • 2.正在处理的请求,等待请求处理完毕;对于内部正在执行的其他任务,比如定时任务、mq 消费等等,也要等当前正在执行的任务执行完毕,并且不再启动新的任务
  • 3.当应用准备关闭的时候,按需向外发出信号,告知其他应用服务准备接手,以保证服务高可用

如果暴力的关闭应用程序,比如通过kill -9 <pid>命令强制直接关闭应用程序进程,可能会导致正在执行的任务数据丢失或者错乱,也可能会导致任务所持有的全局资源等不到释放,比如当前任务持有 redis 的锁,并且没有设置过期时间,当任务突然被终止并且没有主动释放锁,会导致其他进程因无法获取锁而不能处理业务。

如何使用:

在pom文件引入

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

在服务bootstrap.yaml文件配置

server:##开启优雅停机,默认等待30s处理剩余任务shutdown: graceful# 优雅下线配置
management:endpoint:shutdown:enabled: true #启用 shutdown 端点,默认是未启用的endpoints:web:exposure:include: health,info,shutdown #对外公开 health,info,shutdown 端点,默认只会公开前两个  

于是现在关闭日志就会有如下日志,说明就成功了

在这里插入图片描述


http://www.ppmy.cn/news/244616.html

相关文章

vue3之watch

目录 一、监视ref&#xff0c;&#xff08;监视基本类型&#xff09; 二、监视reactive&#xff0c;&#xff08;监视复杂类型&#xff09; 三、监视对象里面的属性&#xff0c;属性的值是基本类型 四、监视对象里面的属性&#xff0c;属性的值是复杂类型 五、同时监听多个…

VR全景制作是如何制作全景图的?小白也能上手

我们每天都会看到很多的图片&#xff0c;比如说路上的宣传图册、楼下的海报以及手机上各种山水图、景色图等。但是不知道大家有没有看过这样的VR全景图呢&#xff1f;VR全景图可以选择任意视角来看图片&#xff0c;那么VR全景制作是如何制作全景图的呢&#xff1f;其实现在我们…

重塑规则 定义未来 三星Galaxy S22系列中国发布

2月22日&#xff0c;三星电子正式在中国发布新一代旗舰智能手机——三星Galaxy S22系列&#xff0c;以前沿的影像技术和创新体验&#xff0c;帮助广大消费者更自由地记录生活之美&#xff0c;尽享高品质生活。三星Galaxy S22系列再次突破行业边界&#xff0c;不仅传承了标志性的…

如视技术副总裁杨永林:当传统产业遇到“数字空间”

图&#xff1a;2022阿里云视觉计算私享会现场 5月11日&#xff0c;在“2022阿里云视觉计算私享会”上&#xff0c;如视技术副总裁杨永林为大家带来了题为《当传统产业遇到“数字空间”》的主题分享。以下内容根据他的演讲整理而成。 随着互联网的发展&#xff0c;我们不断地将…

致敬!百里煤海战斗在第二战线上的人们

致敬&#xff01;百里煤海战斗在第二战线上的人们 准能无小事每一颗心都是热的 杨桂林百里煤海里有一群塑造温情、美丽的人们 一 “您好&#xff0c;这里是准能宾馆&#xff0c;请问您需要什么帮助吗&#xff1f;” “您好&#xff0c;请您往这边走&#xff01;” 这是准能宾馆…

数据结构基础-队列

队列 概述 计算机科学中&#xff0c;queue 是以顺序的方式维护的一组数据集合&#xff0c;在一端添加数据&#xff0c;从另一端移除数据。习惯来说&#xff0c;添加的一端称为尾&#xff0c;移除的一端称为头&#xff0c;就如同生活中的排队买商品 In computer science, a qu…

Axure教程—滚动加载(中继器 )

本文将教大家如何用AXURE中的中继器制作滚动加载效果 一、效果介绍 如图&#xff1a; 预览地址&#xff1a;https://awjggr.axshare.com 下载地址&#xff1a;https://download.csdn.net/download/weixin_43516258/87867798?spm1001.2014.3001.5503 二、功能介绍 向下滚动鼠…

探究Vue源码:mustache模板引擎(2) mustache使用方法

mustache是最早的模板引擎 比vue的诞生还要早很多 而他的语法 就是基于 {{ }} 这样的双花括号 mustache属于通用性的应用 他既可以在浏览器中直接用 也可以在npm中使用 这里 我们为了方便 就直接去拿在浏览器中使用的包了 没必要再自己搭个环境 大家可以下载我上传的资源 vue源…