关于腾讯云:腾讯云-Serverless-重试策略配置能力解读

40次阅读

共计 1954 个字符,预计需要花费 5 分钟才能阅读完成。

在函数调用的过程中,可能有多种起因导致函数调用失败。不同的 谬误类型 以及 调用形式(同步调用、异步调用)都会影响重试策略。理论业务生产中,有很多开发者对这里的策略有纳闷,本文将全面解读 Serverless 异步队列重试策略,并对多种应用场景提供相干的配置倡议。

谬误类型

在函数调用的过程中,可能有多种起因导致函数调用失败。谬误类型分为以下几类:

调用谬误

调用谬误产生在函数理论执行前。以下情景均会产生调用谬误:

  • 调用申请谬误。例如传入的 Event 数据结构过大、入参不符合要求、函数不存在等。
  • 调用方谬误。次要呈现在调用方权限有余的情景。
  • 超限谬误。调用的并发数超出 最大并发数 限度

运行谬误

运行谬误产生在函数理论运行中。运行谬误有以下情景:

  • 代码运行谬误。这类谬误呈现在用户代码执行过程中,例如函数代码抛出异样,或者返回后果格局问题等。
  • Runtime 谬误。函数运行过程中,Runtime 负责拉起用户代码并执行。Runtime 谬误指的是 Runtime 发现并上报的谬误,例如函数运行超时、代码语法报错等。

零碎谬误

函数平台的谬误,例如 internal error。

重试策略

不同 谬误类型 以及 调用形式(同步调用、异步调用)都会影响重试策略。

同步调用

同步调用蕴含 云 API 触发器 的同步调用、API 网关触发器 及 CKafka 触发器。
因为同步调用的过程中,错误信息会间接返回给用户,所以在同步调用中产生谬误时,平台不会主动重试,重试策略(是否重试、重试几次)均由调用方决定。

异步调用

异步调用蕴含 云 API 触发器 的异步调用、COS 触发器、定时触发器 及 CMQ Topic 触发器 等,具体触发器调用类型请参考相干触发器阐明文档。
在新版重试策略中,开发者能够依据业务诉求在函数配置中批改和自定义默认的【重试次数】,【最长等待时间】配置,该配置只实用于异步调用场景。

  • 重试次数:函数返回谬误时云函数重试的次数,该参数只实用于 运行谬误 的策略配置,默认配置为 2 次。
  • 最长保留工夫:云函数在异步事件队列中保留事件的最长工夫,该参数实用于所有异步调用的重试配置,默认配置为 6 小时,最大长度反对 10w 条。

异步调用产生各种谬误类型的重试策略:

  • 运行谬误 (含 用户代码运行谬误 Runtime 谬误):当产生该类谬误时,函数平台将默认重试两次或应用配置的重试次数,固定距离 1 分钟。在主动重试的同时,新的触发事件仍可失常解决。如果您配置了死信队列,三次失败后的事件将传入死信队列,否则事件将被函数平台抛弃。
  • 零碎谬误:当产生该类谬误时,函数平台会依据您配置的最长等待时间继续重试(默认继续重试 6 小时),重试距离依照指数退却减少到 5 分钟。如果您配置了死信队列,重试超过最长等待时间仍失败的事件会被发送到死信队列,由用户进行进一步解决,否则事件将被函数平台抛弃。
  • 超限谬误:当产生该类谬误时,函数平台会依据您配置的最长等待时间继续重试(默认继续重试 6 小时),重试距离为 1 分钟。如果您配置了死信队列,重试超过最长等待时间仍失败的事件会被发送到死信队列,由用户进行进一步解决,否则事件将被函数平台抛弃。
  • 调用申请谬误 调用方谬误 :当产生该类谬误时,除了 超限谬误,平台将不会对该类其余谬误进行重试,因为其余申请谬误即使重试也不会胜利。

谬误重试配置倡议

  • 个别应用场景

个别应用场景下,举荐默认配置即可满足大多数谬误状况下的重试诉求,无需进行任何批改即可放心使用。

  • 对代码重入较敏感

对代码重入较敏感的场景,倡议将重试次数调整为 0 即代码报错不会重试。

  • 对事件处理实效性较高

在事件处理实效性要求较高的场景下,并在肯定工夫范畴内进行重试的场景下,可配置事件最长保留事件来及时淘汰过期事件。保障谬误重试的实效性。

  • 并发超限场景

并发超限(ResourceLimitReached)指云函数 SCF 在同一时刻执行的并发数超过并发配额导致的函数报错。并发超限分为同步调用、异步调用两种状况。
异步调用并发超限时其解决逻辑由云函数 SCF 进行主动重试,在保留工夫内并发超限不会导致如何数据抛弃。通常状况下异步调用的并发超限用户无需进行任何操作,在设定的最长等待时间内,函数平台会主动对并发超限谬误进行重试。异步调用中,如对实效性比拟敏感能够通过配置保留并发来缩小或升高超限对业务零碎的影响,数据较重要可配置死信队列兜底。
同步调用的过程中,错误信息会间接返回给用户。

总结

目前重试可配置已全量凋谢,通过重试策略配置的能力,可依据业务需要自行配置重试策略。平台的默认重试策略可满足大多数开发者谬误重试的诉求,更多异步队列重试配置能力建设请关注微信号或官网产品动静。

One More Thing

立刻体验腾讯云 Serverless Demo,支付 Serverless 新用户礼包 ???? serverless/start

欢送拜访:Serverless 中文网!

正文完
 0