Performance AWS运动流以较慢的速率向Lambda发送数据

Performance AWS运动流以较慢的速率向Lambda发送数据,performance,streaming,aws-lambda,latency,amazon-kinesis,Performance,Streaming,Aws Lambda,Latency,Amazon Kinesis,我需要使用AWS Kinesis streams和Lambda实现流解决方案 Lambda函数1- 它向流中添加数据,并每10秒调用一次。我向流中添加了100个数据请求(每个1kb)。我正在运行两个调用lambda函数的脚本实例 Lambda函数2- 此lambda使用上述流作为触发器。在小数据量/间隔秒上,lambda同时获取数据。但在上述指标上,数据传输速度比平时慢(在+1小时流媒体传输后慢10分钟) 我检查了两个lambda函数的逻辑,并验证了first lambda在将数据推送到流之前不

我需要使用AWS Kinesis streams和Lambda实现流解决方案

Lambda函数1-

它向流中添加数据,并每10秒调用一次。我向流中添加了100个数据请求(每个1kb)。我正在运行两个调用lambda函数的脚本实例

Lambda函数2-

此lambda使用上述流作为触发器。在小数据量/间隔秒上,lambda同时获取数据。但在上述指标上,数据传输速度比平时慢(在+1小时流媒体传输后慢10分钟)

我检查了两个lambda函数的逻辑,并验证了first lambda在将数据推送到流之前不会增加延迟。我还通过第二个lambda中的流数据包验证了这一点,其中时间戳和当前时间明显增加了时差

Kinesis本身在分析中没有显示任何问题/限制(我使用的是1个碎片)

他们是否有任何架构上的改变,我需要让它变得更平滑,因为我需要放大至少10倍,就像20次调用第一个lambda和200个数据包一样,超时1-10秒作为以后的基准

我使用100作为批量大小。增加/减少它是否有优势

更新:随着我在线探索的深入,我发现了一些想法,可以用kinesis实现一些异步/面向前端的lambda,而kinesis反过来异步调用实际的lambda,这样lambda处理时间就不会成为瓶颈。然而,这种方法也失败了,因为我有同样的延迟问题。我已经检查了执行时间。前向lambda在1秒内结束。但在这两个lambda中,时间戳和当前时间之间仍然有很大的差距


请帮忙

对于一个碎片,将有一个第二个lambda的实例

第二个lambda就是这样工作的。lambda从流中读取配置的记录大小并对其进行处理。在成功处理以前的记录之前,它不会读取其他记录


添加第二个碎片,将有2个lambda处理记录。因此,我认为扩展架构的方法是增加碎片的数量,但要确保数据均匀分布在碎片上。

对于一个碎片,将有一个第二个lambda的实例

第二个lambda就是这样工作的。lambda从流中读取配置的记录大小并对其进行处理。在成功处理以前的记录之前,它不会读取其他记录


添加第二个碎片,将有2个lambda处理记录。因此,我认为扩展架构的方法是增加碎片的数量,但要确保数据均匀分布在碎片上。

在我阅读aws文档时,aws建议在数据大小超过限制并开始节流时添加额外的碎片。如果我在文档中遗漏了什么?我还用在线发现的另一种方法更新了我的问题(仍然失败)。还有一件事我认为是使用100批量。如果增加/减少它会有好处吗?正如我阅读的aws文档所述,aws建议在数据大小超过限制并开始节流时添加额外的碎片。如果我在文档中遗漏了什么?我还用在线发现的另一种方法更新了我的问题(仍然失败)。还有一件事我认为是使用100批量。如果增加/减少,它会有优势吗?