更新时间:2023-11-07 GMT+08:00

滚动升级

推荐使用ServiceStage部署Spring Cloud应用,使用ServiceStage能够方便的实现滚动升级。

当使用ServiceStage部署应用的时候,可参考设置应用健康检查分别配置组件存活探针、组件业务探针,用以检测微服务的“存活”状态和“就绪”状态。

spring Boot提供了开箱即用的容器探针,LivenessStateHealthIndicator 、ReadinessStateHealthIndicator。

配置探针,需要启用spring-cloud-starter-huawei-actuator功能。

<dependency>
  <groupId>com.huaweicloud</groupId>
  <artifactId>spring-cloud-starter-huawei-actuator</artifactId>
</dependency>

默认情况下LivenessStateHealthIndicator 、ReadinessStateHealthIndicator不包含任何的其他健康检查。Spring Cloud Huawei提供了一个健康检查功能,当服务注册成功,返回true。可以在ReadinessStateHealthIndicator包含这个检查:

management.endpoint.health.group.readiness.include=registry

然后配置如下表1设置组件业务探针。完成设置以后,服务注册成功的情况下,ServiceStage才会展示服务就绪状态,滚动升级的时候,也会在实例注册成功后,才停止老实例。

表1 组件业务探针配置

参数

是否必填

参数含义

路径

请求的URL路径,例如/actuator/health/readiness。

端口

微服务的端口。

延迟时间/秒

开始检测的时间,对于启动时间较长的微服务,可以适当延长。

超时时间/秒

开始检测后,如果超过该时间未检测到探针状态则检测失败。

Spring Cloud Huawei 1.9.0-Hoxton和1.9.0-2020.0.x及以上版本才提供这个模块。

除了设置探针,还需要设置滚动升级策略。核心的参数为“最大无效实例数”。“最大无效实例数”的默认值是0,当只有1个实例的情况下,滚动升级会存在中断。建议设置0<=最大无效实例数<实例数。