1

我们有 SaaS 应用程序,我们有成千上万的客户。当我们的客户网站获得流量时,我们也会获得与跟踪客户网站访问者活动相同的流量。

由于客户网站的流量导致请求突然激增,我们无法得知何时突然出现峰值,并且我们所有的服务器都关闭了。为了解决这个问题,我们配置了当我们的 CPU 或内存使用率超过 60% 时进行扩展。这意味着我们要为未使用的资源支付 40% 的额外费用。如果我们将其设置为 90%,那么我们的所有服务器都会由于突然的负载和资源使用而变得无响应。

我们希望利用我们支付的至少 90% 的资源,而不是 60% 的规模。有没有更好的方法以具有成本效益的方式进行扩展?

注意:我们使用的是AWS ElasticBeanstalk以及GoogleCloud 的 Kubernetes Engine服务。

4

1 回答 1

1

我们希望利用我们支付的至少 90% 的资源,而不是 60% 的规模

90% 是一个相当高的要求。然后您需要将缩放阈值设置为 90% 级别。显然,如果您无法足够快地扩展或无法估计预期负载,您就会发现问题。60% 听起来安全的方法(而且更昂贵)。仍然 - 玩门槛有什么问题?

为了完全与负载保持一致,您可以使用无服务器(AWS 和 GCP 都提供某种无服务器功能)。在高永久负载下,它们可能更昂贵,但如果您的问题是不断变化的负载和过度配置,那么这些功能是巧妙的答案。

另一种方法是使用异步处理,例如队列或流,并使用您拥有的资源按照自己的节奏处理数据。您可能会在接收数据和产生结果之间引入一些延迟,但在大多数情况下它可能是可以接受的。

于 2021-12-11T07:00:48.133 回答