本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
当您在Serverless 应用引擎 SAE(Serverless App Engine)上创建应用时,如果选择自定义运行时或使用自己的容器镜像来创建应用,可能会因为自定义运行环境的不稳定性导致应用实例运行出现异常。为了防止这种异常实例影响到应用的正常运行,导致请求处理失败,Serverless 应用引擎提供了周期性健康检查功能。这项功能可以定期检测应用实例的健康状态,确保异常实例不会接收到新的请求,从而提高应用的稳定性和可用性。本文将详细介绍健康检查的工作原理,以及如何在SAE控制台配置健康检查。
健康检查原理
单次健康检查行为
SAE执行一次健康检查的行为如下。
根据应用配置,向指定HTTP路径发送GET请求。
如果GET请求执行没有超时,HTTP返回状态码小于400且大于等于200,则认为本次检查成功。否则,认为本次检查失败。
健康检查失败后的调度行为
如果应用实例不健康,SAE将尝试调度请求到其他实例。
如果SAE调度请求成功,请求将在新的应用实例上执行。
如果SAE未能及时调度请求到其他实例,将返回健康检查失败错误信息。下一次执行健康检查时,会直接调度到新的应用实例。
实例启动行为
如果您为应用配置了健康检查,实例启动的行为如下。
如果首次健康检查成功,则认为应用健康,并进入健康检查循环,执行周期性健康检查,具体流程如下。否则,认为实例启动失败,健康检查流程终止,并返回相关错误信息。
如果连续健康检查失败,次数达到您设置的最大失败次数,则认为该应用实例不健康。SAE将尝试调度请求到其他实例。
如果不健康的实例连续健康检查成功次数达到您设置的探测成功阈值,则认为该实例已恢复健康。
如果应用监听80端口,但是在配置页面为HTTP监听端口设置了9000,则健康检查会失败。
使用限制
仅支持为自定义运行时环境和使用自定义镜像启动的应用实例设置健康检查功能。
操作步骤
在创建Web应用时设置健康检查
登录SAE控制台。
在左侧导航栏,选择
,在顶部菜单栏选择地域。在应用列表页面,单击创建应用。
在应用基本信息页面,按照页面提示完成相关参数配置,然后单击下一步:高级设置。
在高级设置页面,展开应用健康检查设置区域,单击应用启动检查(Startup 配置)对应的图标,开启健康检查,然后根据下表设置相关信息。
说明应用启动检查和应用实例存活检查的参数相同。
在健康检查设置中,应用启动检查(Startup 配置)与应用实例存活检查(Liveness 配置)二者都配置(推荐),也可二者选配其一。如果二者都配置,SAE会根据配置的检查延迟时间依次执行健康检查。
单击创建应用。
在部署新版本时设置健康检查
部署新版本后,该应用将会被重启。为避免业务中断等不可预知的错误,请在业务低峰期执行部署操作。
登录SAE控制台。
在左侧导航栏,选择
,在顶部菜单栏选择地域。在应用列表页面,单击目标应用名称。
在左侧导航栏,单击版本列表,然后单击新建版本。
在弹出的新建版本面板,单击应用启动检查(Startup 配置)对应的图标,开启健康检查,然后根据下表设置相关信息。
说明应用启动检查和应用实例存活检查的参数相同。
在健康检查设置中,应用启动检查(Startup 配置)与应用实例存活检查(Liveness 配置)二者都配置(推荐),也可二者选配其一。如果二者都配置,SAE会根据配置的检查延迟时间依次执行健康检查。
然后单击确定。