gpt4 book ai didi

java - AmazonDynamoDBClent 实例化延迟

转载 作者:太空宇宙 更新时间:2023-11-04 13:15:01 26 4
gpt4 key购买 nike

我正在 Java 中创建 AWS Lambda 函数来访问 DynamoDB 表。我注意到 AmazonDynamoDBClent 实例化有时需要几秒钟 - 通常是在我有一段时间没有调用 lambda 函数之后。

这意味着通常情况下,当我连续向 Lambda 发送多个请求时,我会等待大约 10 秒才能获得第一个响应,而对于任何后续调用,我会等待大约 10 秒的时间。但这不是一个规则 - 有时中间的一些请求也很慢。

我尝试了几个带或不带参数的 AmazonDynamoDBClent,但没有发现任何差异。

有什么技巧可以消除这种延迟吗?需要使用 DynamoDB 配置什么吗? lambda ?

最佳答案

定期执行 NO-OP 将有助于保持 Lambda 函数的正常运行。 Measurements newrelic 执行的研究表明,每隔 1 到 10 分钟调用一次函数就足以避免频繁的冷启动。 New containers may be used即使您的函数对负载的响应很热。

其他需要改进延迟的地方包括 Lambda 函数的 CPU/内存占用量、可执行包的大小、运行时和其他无害的网络请求。

AWS forum 上的互动上面的 newrelic 文章表明,增加 Lambda 函数容器的 CPU/内存大小是控制和减少延迟的另一种好方法。

当您构建 zip/jar 时,您是依赖整个 SDK 还是仅依赖 DynamoDB SDK?清除尽可能最小的包中不需要的依赖项。此外,如果您从库中需要的只是单个函数,那么积极向后移植代码是减少包大小的另一种方法。

如果您的应用程序允许,您可能会在 Python 和 NodeJS 运行时体验到较低的延迟。

最后,如果您尝试从其他服务(例如 S3 中的文件)读取 lambda 的配置,您可以采取以下步骤来减少 lambda 函数中的设置时间:

  1. 如果配置很少更改,或者您需要处理有限且较小的一组组合,请将配置烘焙到 lambda 函数中
  2. 重构您的处理程序以从 InputStream 负载中读取更多配置
  3. 使用 Lambda 环境变量管理配置。

关于java - AmazonDynamoDBClent 实例化延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33630507/

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