设置微服务无损下线

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

线上应用在服务更新部署过程中,需要尽量保证客户端无感知,即从应用停止到重启恢复服务的阶段不能影响正常的业务请求。由于微服务应用自身调用特点,在高并发下,服务提供端应用实例的直接下线,会导致服务消费端应用实例无法实时感知下游实例的实时状态,因而出现继续将请求转发到已下线的实例,从而出现请求报错,导致流量有损。因此,在应用执行部署、停止、回滚、缩容和重置时,需要通过无损下线配置来保证应用正常关闭。

前提条件

  • 已创建微服务应用。具体操作,请参见创建应用

  • 根据应用类型判断是否需要开通微服务引擎 MSE(Microservices Engine)微服务治理专业版。具体操作,请参见开通MSE微服务治理

    • 存量应用:2023年11月08日00:00前创建的应用,无需开通MSE服务治理专业版或企业版,后续部署应用也不会产生MSE计费。

    • 新增应用:2023年11月08日00:00起新建的应用,使用无损上下线与灰度规则功能需要开通MSE微服务治理专业版,使用限流降级功能需要开通MSE微服务治理企业版。用户升级MSE企业版后,未开启限流降级功能的应用依然按照专业版进行计费,只有开启限流降级功能的应用才会按照企业版计费。

    关于MSE微服务治理计费的更多信息,请参见计费概述【产品变更】SAE集成的MSE微服务治理功能商用通知

设置无损下线

存量应用

警告

重新部署应用后,该应用将会被重启。为避免业务中断等不可预知的错误,请在业务低峰期执行部署操作。

更新应用配置的路径因实例数的不同而不同。本文以实例数大于等于1为例,介绍如何配置目标功能。当实例数等于0时的操作路径,请参见更新应用

  1. 登录SAE控制台

  2. 在左侧导航栏,选择应用管理 > 应用列表,在顶部菜单栏选择地域,然后单击具体应用名称。

  3. 基本信息页面右上角,单击部署应用

  4. 部署应用页面,展开微服务无损上下线区域,在微服务无损下线页签,打开启用微服务无损下线功能开关,然后单击微服务无损下线配置向导

  5. 无损下线参数配置页签,设置相关信息,单击预览配置

    微服务无损下线

    配置项

    说明

    是否开启优雅下线服务治理能力

    默认为true。取值说明如下:

    • true:开启。

    • false:关闭。

    SAE优雅下线功能占用端口

    默认端口为54199。如果此默认端口和应用的端口产生冲突,请配置新的端口。

    收到Spring的ContextClosedEvent事件后,进程动态等待关闭的时间

    默认取值为5000,即进程收到关闭信号后,会等待5000 ms再关闭。

    配置该参数后,需要设置是否开启自动等待功能参数为false

    是否开启自动等待功能

    默认为true。取值说明如下:

    • true:开启。进程可能会随着流量停止而提前关闭。

    • false:关闭。进程直接等待收到Spring的ContextClosedEvent事件后,进程动态等待关闭的时间所配置的值的对应时长后再关闭。

  6. 预览配置页签,确认相关配置,单击确认

    配置的参数会自动渲染到环境变量、生命周期管理的优雅下线超时设置。更多信息,请参见设置环境变量设置应用生命周期管理

  7. 配置完成后,单击确认

新增应用

接入MSE后,默认开启无损下线功能。本文介绍如何打开无损下线功能中的主动通知功能。

  1. 登录SAE控制台

  2. 在左侧导航栏,选择应用管理 > 应用列表,在顶部菜单栏选择地域,然后单击具体应用名称。

  3. 在左侧导航栏,选择微服务治理 > 无损上下线

  4. (可选)在无损上下线页面的无损下线区域,打开主动通知开关。

    说明

    如果您是第一次使用该功能,需要在该页面单击开启微服务治理并刷新页面,才能配置无损上下线。

    开启后,应用在收到下线请求时,会主动通知消费方,避免下线过程中消费方继续访问即将下线的应用实例。

关闭无损下线

如果您的应用已设置无损下线功能,可以通过以下方式关闭:

  • 存量应用

    在应用基本信息页面,单击部署应用修改应用配置,然后在微服务无损上下线区域,关闭启用微服务无损下线功能,然后单击确认

  • 新增应用

    无损下线功能接入MSE后默认开启,不支持单独关闭。

    如果您无需使用微服务治理功能,为避免产生不必要的MSE费用,可以在应用基本信息页面右上角,选择更多 > 关闭微服务治理,根据页面提示信息,关闭微服务治理功能。

    警告

    关闭微服务治理功能后,除服务列表外,其他微服务治理功能(包括无损上下线、灰度规则和限流降级)将无法使用,且关闭过程中会触发一次应用重启,请自行判断业务风险后再进行操作。