对于任何一个线上应用来说,发布、扩容、缩容、重启等操作不可避免。MSE提供的无损上下线功能,为应用启动和下线的多个阶段提供相应的保护能力,例如服务预热、服务延迟注册、主动通知等。本文介绍如何通过YAML方式配置无损上下线。
配置无损上下线规则
将ACK微服务应用接入MSE治理中心。具体操作,请参见ACK微服务应用接入MSE治理中心。
在应用的工作负载中,配置下述参数。具体参数含义,请参见配置无损上线和配置无损下线。
字段方式位置:spec > template > metadata > labels
字段含义说明。
字段
含义
默认值
mse.lossless.enable
是否开启无损上线规则。
true:开启。
false:关闭。
false
mse.lossless.warmupTime
预热时长,单位为秒。
120
mse.lossless.delayTime
延迟注册时间,单位为秒。相较于正常状态,应用启动将延迟x(x指所设的值)秒后再向注册中心注册应用或服务。
0
mse.lossless.notice
是否开启服务提供者下线时主动通知消费者。
false
字段配置样例。
mse.lossless.enable: 'true' mse.lossless.delayTime: '30' mse.lossless.warmupTime: '60' mse.lossless.notice: 'false'
结果验证
登录MSE治理中心控制台,并在顶部菜单栏选择地域。
在左侧导航栏,选择治理中心 > 应用治理。
在应用列表页面,单击目标应用的资源卡片。
在左侧导航栏,单击流量治理。在无损上下线页签,查看无损上线规则配置已更新为YAML中的配置,可以在应用进行上下线时,在无损上下线功能页面,观测到事件和QPS的曲线表现符合YAML中的配置。
通过YAML方式配置无损上下线规则后,应用会立即重启,重启后新配置的无损上下线规则会生效。
YAML中未配置的规则条目,会以自动以默认值方式生效。
同时在应用工作负载的YAML和MSE服务治理控制台上修改应用的无损上下线规则时,会以应用YAML配置为准。如果在控制台上修改了无损上下线规则,一旦应用发生重启,应用YAML 中的规则配置会覆盖控制台上现有的配置。