代码之家  ›  专栏  ›  技术社区  ›  James Wierzba

AWS Lambda函数的扩展不足以处理SQS消息

  •  1
  • James Wierzba  · 技术社区  · 7 年前

    这是我的应用程序中的一个问题,因为我使用的是标准SQS队列,它不提供订购保证。因此,有时我会看到不吉利的消息在队列中被吸了几个小时,而有些消息在不到一分钟的时间内被处理。(顺便说一句,我对队列可以以如此随机的顺序处理感到非常震惊。即使没有订购保证,我也不会想到它会如此糟糕)。

    2 回复  |  直到 7 年前
        1
  •  4
  •   James Wierzba    7 年前

    问题是lambda函数的内存分配。我天真地把它当成了我的默认 128MB . 将此更改为 2048MB 彻底解决了这个问题。lambda现在没有任何问题可以跟上大量的SQS消息。

        2
  •  1
  •   Community Mohan Dere    6 年前

    关于 SQS ,您没有说您正在使用哪个区域,但是 在come地区有FIFO选项。

    在美国东部(北弗吉尼亚州)、美国东部(俄亥俄州)、美国西部(俄勒冈州)、欧盟(爱尔兰)、亚太地区(悉尼)和亚太地区(东京)可以使用先进先出队列。FIFO队列具有标准队列的所有功能。

    关于 Lambda

    如果您的功能连接到基于VPC的资源,则必须确保您的子网具有足够的地址容量,以支持您的功能的ENI扩展要求。您可以使用以下公式估算埃尼集团的近似产能:

    并发执行*(内存单位为GB/3 GB)

    哪里:

    并发执行–这是您工作负载的预计并发性。使用“了解缩放行为”中的信息确定此值。

    内存(GB):为Lambda函数配置的内存量。

    https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html

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