gpt4 book ai didi

amazon-web-services - AWS Firehose 数据转换并发限制

转载 作者:行者123 更新时间:2023-12-05 06:39:36 25 4
gpt4 key购买 nike

我有一个用例,我必须每秒从不同的生产者收集数千条记录,并使用 AWS firehose 将它们推送到 Elasticsearch 。我还在 firehose 上使用数据转换 lambda,它在将记录传回 firehose 之前进行大量计算。

Firehose 应该在数据再次缓冲以传送到目的地之前异步调用每个缓冲批处理的 lambda。

我以每秒 4k 条记录的入口速率运行了 15 分钟的基本测试,这是系统响应的方式。

Firehose CloudWatch Metrics Firehose CloudWatch Metrics

Lambda CloudWatch Metrics Lambda CloudWatch Metrics

查看 firehose 指标,很明显 firehose 花了一个多小时来处理所有传入的事件。由于没有任何 lambda throttle (图 2),所以我想知道为什么 Firehose 没有运行尽可能多的 lambda 以跟上输入速率?

如第二张图所示,我每分钟大约有 30 次 lambda 调用,平均处理持续时间为 8000 毫秒。

所以我想知道 firehose 是否同时运行 lambda?是否有任何我缺少的 firehose-lambda 并发限制?

最佳答案

每个 Lambda 事件源原则上将与 1 个 Lambda 实例相关联。这是为了确保处理数据的正确顺序。

如果您想以无法保证数据正确排序为代价来提高吞吐量,您可以在 lambda 函数内部使用“InvokeAsync”(传递相同的参数)。通过这种方式,您可以第二次调用 lambda,这次是异步调用,这将按预期增加吞吐量。

可以在此处找到详细介绍类似问题的博客文章:https://medium.com/retailmenot-engineering/building-a-high-throughput-data-pipeline-with-kinesis-lambda-and-dynamodb-7d78e992a02d

关于amazon-web-services - AWS Firehose 数据转换并发限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44265425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com