AWS Lambda 上的 Spring 云函数调用外部 API 时的重试和回退解决方案

问题描述 投票:0回答:1

需要针对我手头的场景提供解决方案 A)有一个 Spring Boot 服务,在创建数据时将事件(消息有效负载)发布到 Kafka 主题 B)AWS lambda 上有一个 Spring 云函数,它监听这个主题并消费消息(虽然还没有弄清楚是使用 Spring 云函数还是 Lambda 函数 - 需要决策建议) C) 然后,该云函数调用位于 AWS 外部的外部 Rest API。 需要在 Spring Cloud 函数中实现重试逻辑的解决方案,以防外部 Rest API 没有响应/失败。 我遵循下面的这篇文章,其中建议使用步骤函数通过退避模式实现进行重试,是否有相同的示例代码以及在使用这些服务时应记住的成本考虑因素 • https://dzone.com/articles/using-aws-step-functions-for-offloading-exponentia

另外,我们真的需要实现AWS步骤函数吗?或者Spring Cloud函数中是否有重试逻辑的解决方案

我遵循下面的这篇文章,建议使用步骤函数通过退避模式实现进行重试,是否有相同的示例代码以及使用这些服务时应记住的成本考虑因素 • https://dzone.com/articles/using-aws-step-functions-for-offloading-exponentia

aws-lambda aws-step-functions spring-cloud-function
1个回答
0
投票

我们可以在 lambda 函数中使用带有指数回退的 spring 重试来解决调用外部 api 时的任何间歇性问题,例如在内部服务器错误、网络错误等情况下。

指数退避,因为我们不是在等待固定时间后重试,而是在每次重试失败后增加重试之间的等待时间。

如果即使重试后我们仍然收到错误,在这种情况下我们可以考虑使用操作中心来创建操作票证以进行手动修复。

© www.soinside.com 2019 - 2024. All rights reserved.