线上应用在服务更新部署过程中,需要尽量保证客户端无感知,即从应用停止到重启恢复服务的阶段不能影响正常的业务请求。由于微服务应用自身调用特点,在高并发下,服务提供端应用实例的直接下线,会导致服务消费端应用实例无法实时感知下游实例的实时状态,因而出现继续将请求转发到已下线的实例,从而出现请求报错,导致流量有损。因此,在应用执行部署、停止、回滚、缩容和重置时,需要通过无损下线配置来保证应用正常关闭。
前提条件
已创建微服务应用。具体操作,请参见创建应用。
设置无损下线
重新部署应用后,该应用将会被重启。为避免业务中断等不可预知的错误,请在业务低峰期执行部署操作。
更新应用配置的路径因实例数的不同而不同。本文以实例数大于等于1为例,介绍如何配置目标功能。当实例数等于0时的操作路径,请参见更新应用。
登录SAE控制台。
在左侧导航栏,单击应用列表,在顶部菜单栏选择地域,然后单击具体应用名称。
在基本信息页面右上角,单击部署应用。
在部署应用页面,展开微服务无损上下线区域,在微服务无损下线页签,打开启用微服务无损下线功能开关,然后单击微服务无损下线配置向导。
在无损下线参数配置页签,设置相关信息,单击预览配置。
配置项
说明
是否开启优雅下线服务治理能力
默认为true。取值说明如下:
true:开启。
false:关闭。
SAE优雅下线功能占用端口
默认端口为54199。如果此默认端口和应用的端口产生冲突,请配置新的端口。
收到Spring的ContextClosedEvent事件后,进程动态等待关闭的时间
默认取值为5000,即进程收到关闭信号后,会等待5000 ms再关闭。
配置该参数后,需要设置是否开启自动等待功能参数为false。
是否开启自动等待功能
默认为true。取值说明如下:
true:开启。进程可能会随着流量停止而提前关闭。
false:关闭。进程直接等待收到Spring的ContextClosedEvent事件后,进程动态等待关闭的时间所配置的值的对应时长后再关闭。
在预览配置页签,确认相关配置,单击确认。
配置的参数会自动渲染到环境变量、生命周期管理的优雅下线超时设置。更多信息,请参见设置环境变量和设置应用生命周期管理。
配置完成后,单击确认。
关闭无损下线
如果您的应用已设置无损下线功能,可以通过以下方式关闭:
在应用基本信息页面,单击部署应用或修改应用配置,然后在微服务无损上下线区域,关闭启用微服务无损下线功能,然后单击确认。