Kinesis流/碎片-多个使用者

p.m*_*aes 5 amazon-kinesis aws-lambda

我已经阅读了有关运动学碎片和多个消费者的一些问题,但我仍然不了解它是如何工作的。

我的用例:我有一个只有一个分片的运动流。我想使用不同的lambda函数来使用此碎片,每个lambda函数都是独立的。就像每个lambda函数都有自己的分片迭代器一样。

可能吗?设置多个lambda使用者(基于流)从同一流/碎片读取?

Dav*_*ter 6

嘿,Magalhaes 先生,我相信下面的图片应该可以回答您的一些问题。

处理流:Lambda

因此,澄清一下,您可以将多个 lambda 设置为 kinesis 流上的使用者,但 Lambda 在处理时会互相阻塞。如果您的流只有一个分片,那么它将只有一个并发 Lambda。

  • 有没有一种方法可以让 lambda 仅处理来自一个特定分片的记录? (2认同)

DaM*_*ill 1

是的,这没问题!

分片的数量不会限制流可以拥有的消费者数量。在您的情况下,它只会限制每个 lambda 的并发调用数量。这意味着对于每个消费者来说,只能拥有并发执行的分片数量。

有关更多详细信息,请参阅此文档

  • 我认为这是错误的。对于 1 个分片和 2 个不同的消费者,当新记录到达时,您将同时调用并运行 2 个消费者。当然,我尝试使用两个函数,当消息到达时,它们会持续 100 秒,并且这两个函数同时运行 (3认同)
  • 这对我来说仍然没有意义。如果我只有一个分片和使用同一分片的多个函数,我不能让它们同时运行,对吗?因此,当新记录到达流时,将依次调用 lambda。 (2认同)