滚动升级
推荐使用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才会展示服务就绪状态,滚动升级的时候,也会在实例注册成功后,才停止老实例。
参数 |
是否必填 |
参数含义 |
---|---|---|
路径 |
是 |
请求的URL路径,例如/actuator/health/readiness。 |
端口 |
是 |
微服务的端口。 |
延迟时间/秒 |
否 |
开始检测的时间,对于启动时间较长的微服务,可以适当延长。 |
超时时间/秒 |
否 |
开始检测后,如果超过该时间未检测到探针状态则检测失败。 |
Spring Cloud Huawei 1.9.0-Hoxton和1.9.0-2020.0.x及以上版本才提供这个模块。
除了设置探针,还需要设置滚动升级策略。核心的参数为“最大无效实例数”。“最大无效实例数”的默认值是0,当只有1个实例的情况下,滚动升级会存在中断。建议设置0<=最大无效实例数<实例数。