2
我已经阅读了关于kinesis碎片和多个消费者的一些问题,但我仍然不明白它是如何工作的。Kinesis流/碎片 - 多个消费者
我的用例:我有一个只有一个碎片的kinesis流。我想要使用不同的lambda函数使用这个碎片,每个函数都是独立的。就像每个lambda函数都有自己的分片迭代器。
可能吗?从同一个流/碎片中设置多个lambda消费者(基于流)读取?
我已经阅读了关于kinesis碎片和多个消费者的一些问题,但我仍然不明白它是如何工作的。Kinesis流/碎片 - 多个消费者
我的用例:我有一个只有一个碎片的kinesis流。我想要使用不同的lambda函数使用这个碎片,每个函数都是独立的。就像每个lambda函数都有自己的分片迭代器。
可能吗?从同一个流/碎片中设置多个lambda消费者(基于流)读取?
是的,没有问题!
分片数量不限制流可以拥有的使用者数量。 在你的情况下,它只会限制每个lambda的并发调用次数。这意味着对于每个消费者,您只能拥有并发执行的分片数量。
请参阅this doc了解更多详情。
这对我仍然没有意义。如果我只有一个分片和多个函数使用同一个分片,我不能让它们同时运行,对吧?所以当一条新的记录到达一个流时,lambda将被一个接一个地调用。 –
@ p.magalhaes是的,你是对的。基本上,如果您只有一个碎片,并且您不会为同一个用户同时运行Lambda函数。您必须足够快地使用分片,您不能让多个线程为同一个使用者使用同一个分片。看到这个例子http://stackoverflow.com/a/34509567/2836435。同样适用于使用Kinesis的AWS Lambda。 – SerhatCan
我认为这是错误的。有了1个分片和2个不同的消费者,当有新的记录到达时,您将同时调用和运行2个消费者。当我试着,当信息到达时,有两个功能可以持续100秒,而且这两个功能同时运行 – DaMaill