高达 12 倍!来看 Amazon Lambda 如何提升处理大量请求时的扩展速度

3ec8f1c61754b530bf514e378fdeb5c8.gif

现在,Amazon Lambda 可将扩展速度提高到 12 倍。每个同步调用的 Amazon Lambda 函数每 10 秒钟可扩展 1000 个并发执行,直到所有函数的并发总数达到账户的并发限值为止。此外,一个账户内的每个函数现在可以相互独立扩展无论如何调用这些函数,这些改进不收取任何额外费用,您无需对现有的函数进行任何配置。

使用传统架构构建可扩展的高性能应用程序可能具有挑战性,通常需要过度预置计算资源或复杂的缓存解决方案,以应对峰值需求和不可预测的流量。很多开发人员之所以选择 Amazon Lambda,是因为当应用程序面对不可预测的流量时,它可以按需扩展。

在此更新之前,Amazon Lambda 函数最初可以在第一分钟内,在账户级扩展 500 到 3000 个并发执行(取决于区域),然后每分钟可扩展 500 个并发执行,直到达到账户的并发限值为止。由于此扩展限值由同一个账户和区域中的所有函数共享,因此如果一个函数遇到流量涌入,可能会影响同一个账户中的其他函数的吞吐量。这样会使工程师的监控工作量增加,因为有些可能突破账户限值,从而产生“吵闹的邻居”场景并导致同一个账户中的其他函数的并发总数减少。

借助这些扩展改进,流量可能发生很大变化的客户能够比以前更快地达到并发目标。例如,发布突发新闻报道的新闻网站或者可用限时抢购的网上商店会吸引大量的访客涌入。得益于这些改进,他们现在能够将扩展速度提高到以前的 12 倍。

此外,通过将 Amazon Athena 和 Amazon Redshift 等服务,与基于 Amazon Lambda 的标量 UDF 结合使用以执行数据扩充或数据转换,客户将从这些改进中受益。这些服务依赖数据批处理,并以数据块的形式将这些数据传递给 Amazon Lambda,同时调用多个并行函数。增强的并发扩展行为可确保 Amazon Lambda 能够快速扩展并满足服务水平协议(SLA)的要求。

Amazon Lambda

https://aws.amazon.com/lambda/

Amazon Lambda 函数调用方法

https://docs.aws.amazon.com/lambda/latest/dg/lambda-invocation.html

Amazon Athena

https://aws.amazon.com/athena

Amazon Redshift

https://aws.amazon.com/redshift/

创建标量 Amazon Lambda UDF

https://docs.aws.amazon.com/redshift/latest/dg/udf-creating-a-lambda-sql-udf.html

它在实践中的工作原理是什么

下图显示了一个获取请求并且每 10 秒处理一次请求的函数。账户并发限值设置为 7000 个并发请求,并由同一个账户中的所有函数共享。每个函数的扩展速率固定为每 10 秒 1000 个并发执行。此速率独立于同一个账户中的其他函数,因此您可以更轻松地预测此函数如何根据需要扩展和限制请求。

fcc0039989ab5c836cfe4cce7a704fa4.png

09:00:00 – 此函数已经运行了一段时间,并且已经有 1000 个并发执行正在接受处理。

09:00:10 – 10 秒钟后,新增了 1000 个请求。此函数可以毫无困难地处理这些请求,因为它每 10 秒可扩展最多 1000 个并发执行。

09:00:20 – 此时也发生了同样的情况:新增了 1000 个请求。

09:00:30 – 此函数现在可以获取 1500 个新请求。由于函数的最大扩展能力为每 10 秒 1000 个请求,因此将会限制其中的 500 个请求。

09:01:00 – 这时,此函数已经在处理 4500 个并发请求。但是新增了 3000 个请求。Amazon Lambda 会处理 1000 个新请求并限制 2000 个新请求,因为此函数每 10 秒最多只能扩展 1000 个请求。

09:01:10 – 10 秒钟后,又新增了 2000 个请求,此函数现在可以再处理 1000 个请求。但剩余的 1000 个请求会受到限制,因为此函数每 10 秒最多只能扩展 1000 个请求。

09:01:20 – 现在,此函数正在处理 6500 个并发请求,并有 1000 个请求传入。此函数将处理这些请求中的前 500 个请求,并限制剩余的 500 个请求,因为此函数达到了账户并发限值,即 7000 个请求。请务必记住,您可以在亚马逊云科技管理控制台中创建一个支持票证,以提高账户并发限值。

可用性

默认情况下,为所有函数启用了这些扩展改进。如果希望进一步了解新推出的 Amazon Lambda 的可扩展性行为,请阅读如下页面 。

Amazon Lambda 的可扩展性行为

https://docs.aws.amazon.com/lambda/latest/dg/scaling-behavior.html?trk=34a40b17-ed1b-4724-9974-c449c9b7ec63&sc_channel=el

本篇作者

33d5cd8384573dba64d23deefd2ae438.jpeg

Marcia Villalba

Marcia Villalba 是亚马逊云科技的一名首席开发人员。她在软件行业工作了 20 年,拥有丰富的构建和扩展应用程序的经验。她爱好设计各种系统来充分利用云服务的优势,并积极采用 DevOps 文化。

7c6c30b488dacc57796ed044d921405a.png

0b436d9d818291fd60bc040ccfb153bf.gif

星标不迷路,开发更极速!

关注后记得星标「亚马逊云开发者」

听说,点完下面4个按钮

就不会碰到bug了!

d303c51cadc85d2932818c5afa03846a.gif

点击阅读原文查看博客!获得更详细内容!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值