- Serverless从入门到进阶:架构、原理与实践
- 方坤丁 孙远高
- 561字
- 2025-02-21 09:40:53
3.2 错误处理和重试机制
FaaS平台有可能会出现不同类型的错误,主要分为运行错误和调用错误(同步调用、异步调用)。根据不同的错误类型,重试机制也会有所差异。本节主要分析FaaS平台对应的错误类型和重试策略。
1. 错误类型
FaaS平台的错误类型说明如下。
- 调用错误:调用请求被拒绝时报错,该类型的错误发生在函数实际执行之前。常见的调用错误如并发超出平台限制、调用方无权限、调用请求传参不符合要求等。
- 运行错误:函数的业务代码或运行环境返回错误。运行错误主要发生在函数的实际执行中。常见的运行错误有用户代码运行的异常、函数运行环境发现并抛出的异常等。
2. 重试机制
针对同步的调用错误,平台方不会重试,而是直接将错误信息返回给用户,重试策略主要由调用方决定。针对异步调用错误,如超限,平台会持续重试24小时,重试的间隔按照指数退避增加到1小时。超过24小时仍调用失败,则将本次调用的返回结果存入死信队列或丢弃。
针对运行错误中用户代码或运行环境错误,平台会自动重试,一般会做间隔分钟级别的两次重试。在三次重试失败后,错误事件将被存入死信队列或丢弃。
为了方便用户对错误信息进行收集和重试,各云平台也提供了死信队列等产品化策略,用于收集错误事件,分析失败原因。此外,为了更好地收集和分析错误请求,用户也可以针对调用方配置监控告警,感知函数配置日志服务,及时处理和分析错误。