处理EC2上的同步请求失败

时间:2018-07-25 15:57:01

标签: amazon-web-services amazon-ec2

要求:

  1. 为Cloud上的数据转换应用程序构建和托管Web服务。
  2. 托管应用程序将以REST请求的形式接收来自客户端的请求-客户端将发送一个字符串,我们需要对其进行转换并将其发送回。 (同步)

  3. 设计的系统应该是故障安全,有弹性的,并且应为24 * 7。

我的问题: 我们的EC2在Auto Scaling组中运行,它们将根据负载关闭并启动。可以说,如果正在EC2中执行客户端请求,而在此之间,EC2突然关闭并且客户端请求丢失了。如何处理呢?我认为最好不要让我们的客户设置超时时间,如果他们在指定的时间内未得到响应,请再次向我们发送请求。我们想在最后处理此功能。

欢迎提供建设性的反馈意见和建议。 感谢您的宝贵时间。

1 个答案:

答案 0 :(得分:0)

  

我们想在最后处理此功能。

具有负载均衡的自动伸缩组非常有弹性,实例将要关闭时不应接收请求(据我所知,它已从目标伸缩组中删除)。现在我们正在谈论在合理的短时间内进行请求。

您不能在基础架构级别上做更多的事情

  

我认为要求客户设置超时时间并再次向我们发送请求不是一个好主意

重试非常普遍,甚至是网络不可靠的假设的一部分(主要使用具有动态扩展功能的(微)服务)

  

是否可以将REST请求存储在某个位置,然后将请求重新发送到群集中的其他EC2。

从理论上讲,SQS的目的是..

一种方法是要求客户端在发生某些故障类型(超时,HTTP 503,..)的情况下重试。

另一种方法是使用某种可靠的交付方式(例如SQS),但要以性能为代价(而且网络可能仍会失败)