选择使用自定义运行时创建方式创建应用,或选择使用容器镜像创建方式创建应用且选择您自己的容器镜像作为应用运行环境时,您的自定义运行环境可能会出现不稳定的情况,导致应用实例工作异常。针对上述情况,Serverless 应用引擎 SAE(Serverless App Engine)支持为应用设置周期性健康检查,避免请求消息被分配至异常实例而导致请求失败。本文介绍健康检查原理以及如何在SAE控制台设置健康检查。
健康检查原理
单次健康检查行为
SAE执行一次健康检查的行为如下。
根据应用配置,向指定HTTP路径发送GET请求。
如果GET请求执行没有超时,HTTP返回状态码小于400且大于等于200,则认为本次检查成功。否则,认为本次检查失败。
健康检查失败后的调度行为
如果应用实例不健康,SAE将尝试调度请求到其他实例。
如果SAE调度请求成功,请求将在新的应用实例上执行。
如果SAE未能及时调度请求到其他实例,将返回健康检查失败错误信息。下一次执行健康检查时,会直接调度到新的应用实例。
实例启动行为
如果您为应用配置了健康检查,实例启动的行为如下。
如果首次健康检查成功,则认为应用健康,并进入健康检查循环,执行周期性健康检查,具体流程如下。否则,认为实例启动失败,健康检查流程终止,并返回相关错误信息。
如果连续健康检查失败,次数达到您设置的最大失败次数,则认为该应用实例不健康。SAE将尝试调度请求到其他实例。
如果不健康的实例连续健康检查成功,次数达到您设置的探测成功阈值,则认为该实例已恢复健康。
如果应用监听80端口,但是在配置页面为HTTP监听端口设置了9000,则健康检查会失败。
使用限制
仅支持为自定义运行时环境和使用自定义镜像启动的应用实例设置健康检查功能。
操作步骤
在创建应用时设置健康检查
登录SAE控制台。
在左侧导航栏,单击应用管理,在顶部菜单栏选择地域,然后在应用列表页面,单击创建应用。
在应用基本信息配置向导,配置相关信息,然后单击下一步:高级设置。
在高级设置配置向导的应用健康检查设置区域,配置相关信息,然后单击创建应用。
配置项
说明
健康检查
是否开启对应用进行健康检查的功能。
是:允许对应用进行健康检查。打开开关后,需要配置请求路径、探测超时时间与失败时间等信息。
否:默认,不允许对应用进行健康检查。
请求路径
健康检查的HTTP GET请求的路径,SAE向此路径发送HTTP GET请求做健康检查。取值必须以
/
开头。建议阈值填写的长度不超过2048个字符。首次探测延迟时间
首次健康检查之前,延迟等待的时间。取值范围为[0,120],单位为秒。
探测间隔时间
发送HTTP GET请求的周期。取值范围为[0,120],单位为秒。
探测超时时间
HTTP GET请求超时的时间,超过设置的该值,则认为请求失败。取值范围为[0,3],单位为秒。
最大失败次数
HTTP GET请求失败阈值。健康检查循环执行期间,HTTP GET请求连续失败次数达到设置的该值时,健康检查状态被判定为检查失败。取值范围为[0,120] ,单位为次。
探测成功阈值
HTTP GET请求成功阈值。健康检查循环执行期间,HTTP GET请求连续成功次数达到设置的该值后,健康检查状态被判定为检查成功。取值范围为[0,120] ,单位为次。
应用创建成功后,页面会跳转至应用的基础信息页面。
在更新应用时设置健康检查
应用健康检查既可以在创建应用时设置,也可以在更新应用版本时设置。本步骤以更新应用版本时为例,因此您需要先创建应用。具体操作,请参见应用管理。
登录SAE控制台。
在左侧导航栏,单击应用管理,在顶部菜单栏选择地域,然后在应用列表页面,单击具体应用名称。
在左侧导航栏,单击版本列表,然后在版本列表页面,单击新建版本。
除了直接新建版本,您也可以选择在现有版本的基础上编辑,在目标版本的操作列,单击编辑,同样会生成新版本。
在新建版本面板的应用健康检查设置区域,配置相关信息,然后单击确定。
配置项
说明
健康检查
是否开启对应用进行健康检查的功能。
是:允许对应用进行健康检查。打开开关后,需要配置请求路径、探测超时时间与失败时间等信息。
否:默认,不允许对应用进行健康检查。
请求路径
健康检查的HTTP GET请求的路径,SAE向此路径发送HTTP GET请求做健康检查。取值必须以
/
开头。建议阈值填写的长度不超过2048个字符。首次探测延迟时间
首次健康检查之前,延迟等待的时间。取值范围为[0,120],单位为秒。
探测间隔时间
发送HTTP GET请求的周期。取值范围为[0,120],单位为秒。
探测超时时间
HTTP GET请求超时的时间,超过设置的该值,则认为请求失败。取值范围为[0,3],单位为秒。
最大失败次数
HTTP GET请求失败阈值。健康检查循环执行期间,HTTP GET请求连续失败次数达到设置的该值时,健康检查状态被判定为检查失败。取值范围为[0,120] ,单位为次。
探测成功阈值
HTTP GET请求成功阈值。健康检查循环执行期间,HTTP GET请求连续成功次数达到设置的该值后,健康检查状态被判定为检查成功。取值范围为[0,120] ,单位为次。
版本创建成功后,您可以在版本列表页面查看新建的版本。
- 本页导读 (1)