我已经读过一些关于动画片和多个消费者的问题,但我仍然不明白它是如何工作的。
我的用例:我有一个只有一个分片的运动流。我想使用不同的lambda函数使用这个分片,每个函数都独立。就像每个lambda函数都有自己的分片迭代器一样。
有可能吗?是否设置多个lambda使用者(基于流)从同一流/碎片读取?
对于单个lambda函数:“对于处理Kinesis或DynamoDB流的lambda函数,碎片数是并发单位。如果流中有100个活动碎片,则最多有100个lambda函数调用同时运行。这是因为lambda按顺序处理每个碎片的事件。”[https://docs.aws.amazon.com/lambda/latest/dg/scaling.html]
但是你想用运动附加多少不同的lambda消费者是没有限制的。
如果有一个kinesis流,则可以通过事件源映射连接任意多个lambda函数。
所有函数都将同时运行,并且彼此完全独立,如果流中出现新记录,则会不断调用这些函数。碎片的数量无关紧要。
嘿,Magalhaes先生,我相信下面的图片应该能回答你的一些问题。
因此,为了澄清,您可以将多个lambda设置为运动流上的消费者,但Lambda会在处理过程中相互阻塞。如果您的流只有一个分片,它将只有一个并发Lambda。
我有一个带有20个碎片的动觉流的设置,该碎片由基于KCL的动觉消费者消费。消费者部署在ECS中,有20个实例。(指多个KCL实例?) 我相信在这种情况下会发生的是: 每个实例将为每个分片创建20个工作线程,相互独立。 所以在任何给定的时间,一个分片都会有20个独立的线程连接到它 每个实例都会处理相同的记录集(即:不会跨实例处理重复的记录处理) 这也将超过每个分片的消费者速率限制。(每秒5笔交易)
我读过很多关于这方面的文章,但也有2012年或更早的文章。 (我只是打算从数据库中读取和插入一些数据。)
我了解到,每个kinesis流可以有多个消费者应用程序。 http://docs.aws.amazon.com/kinesis/latest/dev/developing-consumers-with-kcl.html 但是,我听说你只能在每个分片的消费者上有。这是真的吗?我找不到任何留档来支持这一点,我无法想象如果多个消费者从同一个流中阅读会是什么样子。当然,这并不意味着生产者需要为不同的消费者
--编辑-- 值得一提的是,我在我的应用程序中同时使用了KCL和KPL。
我可以使用一个片段作为一个活动吗?我已经创建了一个片段,但我希望它有像活动一样的功能,所以我使用片段扩展碎片活动。然而,我有一个带有碎片的导航抽屉。当我更改为“扩展碎片活动”时,我的代码有问题?请给我指路。
我有一个亚马逊运动流,由多个碎片组成。碎片的数量,因此消费者的数量,不是一个常数。 有一种不常见的事件类型,我希望广播给流中的每个消费者。 制作人是否有办法播放一张唱片,即发现碎片并将唱片放在每个碎片上?